对于CDB,启动和关闭与之前传统的方式一样,具体语法如下:
    STARTUP[NOMOUNT | MOUNT | RESTRICT | UPGRADE | FORCE | READ ONLY]
    SHUTDOWN[IMMEDIATE | ABORT]

手动创建CDB

1. 修改~/.bash_profile文件,修改ORACLE_SID名称
export ORACLE_SID=orcl
2. 创建所需要目录
$ mkdir -p /data/app/oracle/oradata/orcl
$ mkdir -p /data/app/oracle/oradata/pdbseed
$ mkdir -p /data/app/oracle/admin/orcl/adump
$ mkdir -p /data/app/oracle/fast_recovery_area
3.创建初始化配置文件
$ vim $ORACLE_HOME/dbs/initcdb.ora

db_name='orcl'
memory_target=1G
processes = 150
#audit_file_dest='<ORACLE_BASE>/admin/orcl/adump'
audit_file_dest='/data/app/oracle/admin/orcl/adump'
audit_trail ='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='/data/app/oracle/fast_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='/data/app/oracle'
dispatchers='(PROTOCOL=TCP) (SERVICE=orcl)'
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
control_files = (/data/app/oracle/oradata/orcl/ora_control01.ctl, /data/app/oracle/oradata/orcl/ora_control02.ctl)
compatible ='12.2.0'
enable_pluggable_database=true
4.开始创建库
$ sqlplus / as sysdba
SQL> shutdown abort
SQL> create spfile from pfile='$ORACLE_HOME/dbs/initcdb.ora';
SQL> startup nomount
SQL> CREATE DATABASE orcl
USER SYS IDENTIFIED BY pass
USER SYSTEM IDENTIFIED BY pass
LOGFILE GROUP 1 ('/data/app/oracle/oradata/orcl/redo01a.log','/data/app/oracle/oradata/orcl/redo01b.log')
SIZE 100M BLOCKSIZE 512,
GROUP 2 ('/data/app/oracle/oradata/orcl/redo02a.log','/data/app/oracle/oradata/orcl/redo02b.log')
SIZE 100M BLOCKSIZE 512
MAXLOGHISTORY 1
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 1024
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL
DATAFILE '/data/app/oracle/oradata/orcl/system01.dbf' SIZE 700M
SYSAUX DATAFILE '/data/app/oracle/oradata/orcl/sysaux01.dbf' SIZE 550M
DEFAULT TABLESPACE deftbs
DATAFILE '/data/app/oracle/oradata/orcl/deftbs01.dbf' SIZE 500M
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/data/app/oracle/oradata/orcl/temp01.dbf' SIZE 20M
UNDO TABLESPACE undotbs1
DATAFILE '/data/app/oracle/oradata/orcl/undotbs01.dbf' SIZE 200M
ENABLE PLUGGABLE DATABASE
SEED
FILE_NAME_CONVERT = ('/data/app/oracle/oradata/orcl/',
'/data/app/oracle/oradata/pdbseed/')
SYSTEM DATAFILES SIZE 125M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
SYSAUX DATAFILES SIZE 100M
USER_DATA TABLESPACE usertbs
DATAFILE '/data/app/oracle/oradata/pdbseed/usertbs01.dbf' SIZE 200M;

填充数据字典,如果是12cR2版本,则直接执行catcdb.sql代替以下脚本

使用sysdba权限执行以下脚本
SQL> @?/rdbms/admin/catalog.sql --数据库字典,动态视图创建等
SQL> @?/rdbms/admin/catproc.sql --PL/SQL存过过程相关代码
SQL> @?/rdbms/admin/utlrp.sql --编译

使用SYSTEM用户执行以下脚本

SQL> @?/sqlplus/admin/pupbld.sql #SQL*Plus相关

12CR2

注:这个过程可能比较漫长

SQL> @?/rdbms/admin/catcdb.sql

会提示输入以下信息

Enter value for 1: /data/app/oracle/product/12.2.0/db_1/rdbms/admin
Enter value for 2: /data/app/oracle/product/12.2.0/db_1/rdbms/admin/catcdb.pl

如果出现以下报错

1)错误-1

Can't locate util.pm in @INC (@INC contains: /data/app/oracle/product/12.2.0/db_1/rdbms/admin /usr/local/lib64/perl5
/usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at
/data/app/oracle/product/12.2.0/db_1/rdbms/admin/catcdb.pl line 35.
BEGIN failed--compilation aborted at /data/app/oracle/product/12.2.0/db_1/rdbms/admin/catcdb.pl line 35.

解决方法:

$ find $ORACLE_HOME -name util.pm | wc -l
0
$ find $ORACLE_HOME -name Util.pm | wc -l
5
$ find $ORACLE_HOME -name Util.pm
/data/app/oracle/product/12.2.0/db_1/perl/lib/5.22.0/x86_64-linux-thread-multi/Hash/Util.pm
/data/app/oracle/product/12.2.0/db_1/perl/lib/5.22.0/x86_64-linux-thread-multi/List/Util.pm
/data/app/oracle/product/12.2.0/db_1/perl/lib/5.22.0/x86_64-linux-thread-multi/Scalar/Util.pm
/data/app/oracle/product/12.2.0/db_1/perl/lib/5.22.0/x86_64-linux-thread-multi/Sub/Util.pm
/data/app/oracle/product/12.2.0/db_1/perl/lib/site_perl/5.22.0/HTTP/Headers/Util.pm

手工修改catcdb.pl脚本

use Util qw(trim, splitToArray);     //util改为Util

再来一轮测试,结果发现还是会有报错,这种尝试会让你开始怀疑自己的选择到底是不是正确的方向。

如果还是没有找到,说明在当前的环境变量中没有匹配到相关的内容,我们需要直接切换到目录Hash下,然后运行脚本才可以,这个时候又出现一个错误

2)错误-2

Can'tlocate Term/ReadKey.pm in @INC (@INC contains: /data/app/oracle/product/12.2.0/db_1/rdbms/admin
/usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl
/usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at
/data/app/oracle/product/12.2.0/db_1/rdbms/admin/catcdb.pl line 30.
BEGINfailed--compilation aborted at
/data/app/oracle/product/12.2.0/db_1/rdbms/admin/catcdb.pl line 30.

声明环境变量

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/perl/bin:$ORACLE_HOME/jdk/bin:$PATH

验证结果

SQL> SELECT name,
DECODE (cdb,
'YES', 'Multitenant Option enabled',
'Regular 12c Database: ')
"Multitenant Option",
open_mode,
con_id
FROM v$database;

创建PDB

1.查看当前容器

$ sqlplus / as sysdba
SQL> show con_name; CON_NAME
------------------------------
CDB$ROOT

2. 创建一个新的PDB

$ mkdir -p /data/app/oracle/oradata/pdb1

SQL> create pluggable database pdb1 admin
user pdb1 identified by pdb1
file_name_convert=('/data/app/oracle/oradata/pdbseed/',
'/data/app/oracle/oradata/pdb1/');

3. 查看所有PDB

SQL> show pdbs;

    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB1 MOUNTED

4. 删除一个pdb

SQL> alter pluggable database pdb2 close;
SQL> DROP PLUGGABLE DATABASE pdb2 INCLUDING DATAFILES;

5. 启动和关闭一个创建好的PDB

1)启动pdb和关闭pdb

a) 启动pdb

SQL> alter pluggable database pdb1 open;

Pluggable database altered.

SQL> show pdbs;

    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB1 READ WRITE NO

b)关闭pdb

SQL> alter pluggable database pdb1 close;

Pluggable database altered.

SQL> show pdbs;

    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB1 MOUNTED

2)通过sqlplus使用传统的startup和shutdown命令来启动和关闭PDB

a) 启动pdb

SQL> alter session set container=pdb1;

Session altered.

SQL> show pdbs;

    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
3 PDB1 MOUNTED
SQL> startup
Pluggable Database opened.
SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
3 PDB1 READ WRITE NO

b) 关闭pdb

SQL> shutdown immediate;
Pluggable Database closed.
SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
3 PDB1 MOUNTED

6. 配置监听

$ vim $ORACLE_HOME/network/admin/tnsnames.ora    //如果此文件不存在,手动创建

LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = DB)(PORT = 1521)) pdb1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = DB)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdb1)
)
)

7. 测试与登陆

$ tnsping pdb1				//测试登陆
$ sqlplus pdb1/pdb1@pdb1 //登陆

数据泵导入导出PDB数据

以pdb1数据库为例

1. 启动pdb1数据库

$ sqlplus / as sysdba
SQL> alter session set container=pdb1;
SQL> startup

2. 创建导入数据目录和数据库映射关系

$ mkdir -p /home/oracle/dump_dir
SQL> alter session set container=pdb1;
SQL> create directory dump_dir as '/home/oracle/dump_dir';

3. 创建一个dba权限的数据泵导入导出用户

SQL> grant dba to dp identified by dp;
SQL> grant read,write on directory dump_dir to dp;

4. 创建表空间

SQL> CREATE TABLESPACE "PDB1" DATAFILE
'/data/app/oracle/oradata/pdb1/pdb101.dbf' SIZE 128M AUTOEXTEND
ON NEXT 128M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

5. 导出数据

$ expdp dp/dp@pdb1 directory="dump_dir" dumpfile="aa.dmp" logfile=aa.log

6. 导入数据

$ impdp dp/dp@pdb1 directory="dump_dir" dumpfile="aa.dmp" logfile=bb.log

Oracle 12c CDB PDB 安装/配置/管理的更多相关文章

  1. Oracle 12c CDB PDB

    先说基本用法: 先按11G之前进行 conn / as sysdba; create user test identifed by test; ORA-65096: 公用用户名或角色名无效. 查官方文 ...

  2. ORACLE 12C R2 RAC 安装配置指南

    >> from zhuhaiqing.info ASM磁盘空间最低要求 求12C R2相比前一版本,OCR的磁盘占用需求有了明显增长.为了方便操作,设置如下:External: 1个卷x4 ...

  3. oracle 12c centos 7 安装配置

    1,安装centos 7 安装 宿主机配置信息: 内存:8G 系统盘:30G swap分区:30G (笑了oracle安装自检不过) /u01(50G) :oracle安装目录 /u02(50G): ...

  4. Oracle 12C CDB、PDB常用管理命令

    Oracle 12C CDB.PDB常用管理命令 --查看PDB信息(在CDB模式下) show pdbs  --查看所有pdbselect name,open_mode from v$pdbs;  ...

  5. oracle 12c 创建PDB用户即Local User (PDB与CDB)

    Oracle 12C用户创建与表空间分配  数据库安装完成后,首先用系统用户链接数据库容器(CDB), 在数据库容器(CDB)中创建表空间‘imei’ SQL>create tablespace ...

  6. Oracle 12c RAC 静默安装文档

    参考文档: https://docs.oracle.com/en/database/oracle/oracle-database/12.2/cwlin/index.html https://docs. ...

  7. Oracle 12C Win 10 安装 应用 总结

    安装参考 https://www.cnblogs.com/onezg/p/8768597.html 我当时安装的是Oracle 12c Release 1(Version 12.1.0.1.0,64位 ...

  8. Oracle 12c 单实例安装

    准备工作 实验环境:Redhat 6.6   Oracle 12c 12.2.0.1 1.官网下载 https://www.oracle.com/technetwork/database/enterp ...

  9. oracle 12c grid db 安装的的checklist

    oracle 12c 安装 checklist 关闭 iptables NetworkManager selinux service iptables stop chkconfig iptables ...

随机推荐

  1. 【转载】Win10系统如何设置所有程序默认以管理员身份运行?

    在win10系统中有些用户发现一些程序只有使用管理员身份运行能才打开,这样的话就感觉会麻烦很多,那么有没有办法设置所有程序都默认以管理员身份运行,而无需我们一个一个右键点击再打开呢? 目前最好的方法就 ...

  2. 项目开发过程中什么是开发环境、测试环境、生产环境、UAT环境、仿真环境?

    项目开发过程中什么是开发环境.测试环境.生产环境.UAT环境.仿真环境? 最近在公司项目开发过程中总用到测试环境,生产环境和UAT环境等,然而我对环境什么的并不是很理解它的意思,一直处于开发阶段,出于 ...

  3. JavaScript学习之自动轮播图片

    定时器 在实现轮播图之前需要首先了解一下JavaScript的定时器 setInterval()和clearInterval() 1.setInterval() 方法可按照指定的周期(以毫秒计)来调用 ...

  4. Django之CSRF跨站请求伪造(老掉牙的钓鱼网站模拟)

    首先这是一个测试的代码 请先在setting页面进行下面操作 注释完成后,开始模拟钓鱼网站的跨站请求伪造操作: 前端代码: <!DOCTYPE html> <html lang=&q ...

  5. flex 圣杯布局

    基本思路 圣杯布局分为3段:上.中.下.  中段被分为:左.中.右3块. 1:采用flex布局时,先把弹性容器主轴设置为垂直方向(flex-direction:column) 2:上.中.下3块弹性项 ...

  6. C#:对字符串的各种处理

    字符串截取 SubString OR Remove string str3 = "123abc456"; //str3 = str3.Substring(0, i); //从左边开 ...

  7. SQL FIRST() 函数

    FIRST() 函数 FIRST() 函数返回指定的字段中第一个记录的值. 提示:可使用 ORDER BY 语句对记录进行排序. SQL FIRST() 语法 SELECT FIRST(column_ ...

  8. redis编译 报告错误 jemalloc/jemalloc.h:没有那个文件或目录 解决.

    问题原因:没找到jemalloc头文件. 百度谷歌半天没找到有效的下载地址. github中有 到github下载.jemalloc https://github.com/jemalloc/jemal ...

  9. 记一次在咸鱼上购买 MacBook Pro 的经历

    前言 以前一直用的是 windows 的,但是最近特别想买个 macOS 的.其实不是为了其他什么目的,只是涉及到开发 macOS更接近 linux 系统,一直没使用过所以就想尝试体验下,而且现在很多 ...

  10. 深入了解EntityFramework Core 2.1延迟加载(Lazy Loading)

    前言 接下来会陆续详细讲解EF Core 2.1新特性,本节我们来讲讲EF Core 2.1新特性延迟加载,如果您用过EF 6.x就知道滥用延迟加载所带来的灾难,同时呢,对此深知的童鞋到了EF Cor ...