暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle19c 表空间与全局用户

全栈精英 2021-08-11
2683

本文描述的是CDB环境

有关表空间和用户在PDB的使用,参考:Oracle19c表空间


表空间与表

完成的效果:在表空间test_data上创建数据表table1

步骤:

(1)新建表空间 :test_data

    -- 创建永久表空间
    create tablespace test_data datafile 'C:\oracledata\test_data.dbf'
    size 5m autoextend on next 5m 
    -- 创建临时表空间:
    create temporary tablespace test_temp tempfile 'C:\oracledata\test_temp.dbf'
    size 5m autoextend on next 5m;
    复制

    (2)创建表的同时指定表空间

      create table table1
      (
      t_id number,
      t_name varchar(20)
      ) tablespace test_data;      -- 指定表空间
      复制

      (3)查询数据表所在哪个表空间

        select table_name 表名, tablespace_name 表空间
        from user_tables where table_name='TABLE2'; 
        复制

        (4)查询表空间的数据文件

          select tablespace_name 表空间名称, file_name 文件路径, file# 文件编号, v.status 状态, v.enabled 可用 
          from dba_data_files d, v$datafile v
          where d.file_id=v.file#;
          复制

          注意:C:\oracledata 为存放数据文件的服务器路径,在虚拟机里面可以事先创建(有关内容参考:Oracle19c安装指南


          表空间与全局用户

          (1) 创建全局用户 (c##开头)

            -- 创建全局用户 c##admin 和密码 123
            create user c##admin identified by 123;
            -- 授权 (后续根据需要可以随时修改权限)
            grant create table,connect,resource to c##admin;
            复制

            (2) 创建表空间 

              -- 创建永久表空间:
              create tablespace admin_data
              datafile 'C:\oracledata\admin_data1.dbf'
              size 5m autoextend
              on next 5m
              -- 创建临时表空间:
              create temporary tablespace admin_temp
              tempfile 'C:\oracledata\admin_temp.dbf'
              size 5m autoextend
              on next 5m;
              复制

              注意:在CDB下给用户分配表空间时,此表空间必须在没有pdb的情况或者pdb下有相同表空间名称的时候才能成功

              如何知道有哪些PDB:show pdbs;

              接着切换数据库到每个PDB创建 admin_data 和 admin_temp 表空间

              (关于PDB的创建参考:Oracle19c的CDB和PDB

                -- schooldb数据库创建:
                create tablespace admin_data
                datafile 'C:\oracledata\admin_data_schooldb.dbf'
                size 5m autoextend
                on next 5m;


                create temporary tablespace admin_temp
                tempfile 'C:\oracledata\admin_temp_schooldb.dbf'
                size 5m autoextend
                on next 5m;


                -- school数据库创建:
                create tablespace admin_data
                datafile 'C:\oracledata\admin_data_school.dbf'
                size 5m autoextend
                on next 5m;


                create temporary tablespace admin_temp
                tempfile 'C:\oracledata\admin_temp_school.dbf'
                size 5m autoextend
                on next 5m;
                复制

                (3) 分配表空间给c##admin

                  alter user c##admin default tablespace admin_data temporary tablespace admin_temp;
                  复制

                  (4) 查看c##admin的表空间

                    select default_tablespace 永久表空间名称,  temporary_tablespace 临时表空间名称
                    from dba_users where username='C##ADMIN';
                    复制

                    (5) 新建c##admin的连接

                    在SQL Developer图形化开发工具创建新的连接,通过它可以直接连接到c##admin创建的表

                    (6) 创建c##admin的表test1

                      create table test1
                      (
                      id number,
                      name varchar(20)
                      );
                      复制

                      (7) 查看test1的表空间

                        select table_name 表名, tablespace_name 表空间
                        from user_tables where table_name='TEST1';
                        复制

                        (8) 查看admin_data表空间的表

                          select table_name from all_tables where tablespace_name='ADMIN_DATA';
                          复制



                          文章转载自全栈精英,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                          评论