官方文档地址:https://docs.oracle.com/database/121/ADMIN/create.htm#ADMIN14032
创建CDB有两种方式:
1:使用数据库配置助手(DBCA),一种图形工具。
2:用CREATE
DATABASE
SQL语句。
这里使用的是第二种SQL语句及命令创建CDB。
一:首先介绍一下各个目录, 用于存储各种需要修改删除的文件,及各种系统文件的存储:
1.1:存储初始化,创建后参数及密码文件的目录
/u01/app/oracle/product/12.2.0.1/db_1/dbs
init.ora 初始化参数文件, orapw密码文件。
1.2:监听文件目录。
/u01/app/oracle/product/12.2.0.1/db_1/network/admin
1.3:基础目录
/u01/app/oracle/oradata
1. 4:用户目录。存储
/u01/app/oracle/admin
二: 现在开始创建步骤: 前提是装好了12c, 连12c都没装的, 先装12c, 用图形化安装的话默认有CDB和PDB的。
2.1 准备工作:
1:指定 sid, 创建的CDB名称
export ORACLE_SID=test
2:修改sys口令验证方式,
参考文档:https://m.aliyun.com/yunqi/articles/283328, http://blog.itpub.net/26736162/viewspace-2215659/
oracle两种验证方式:
1:操作系统验证,
2: 口令验证。
oracle默认使用操作系统验证,这会导致在服务器不使用密码就能登录, 但是远程又连接不上,推荐使用口令验证。
进入如下目录:
/u01/app/oracle/product/12.2.0.1/db_1/network/admin
修改sqlnet.ora
加入或修改如下为如下内容后保存退出
口令登录
SQLNET.AUTHENTICATION_SERVICES = (NONE)
口令与操作系统登录
SQLNET.AUTHENTICATION_SERVICES = (ALL)
进入如下目录:
/u01/app/oracle/product/12.2.0.1/db_1/dbs
执行如下命令后, 该目录下会出现oraptest文件, 这里存储的是sys,system的登录口令,无法编辑的。
file:密码文件名称, password:密码, force:允许覆盖,format:避免检查密码长度
orapwd file=orapwtest password=orcl format=12 force=y
3:准备初始化参数文件:
进入如下目录, 执行如下操作:
进入目录
/u01/app/oracle/product/12.2.0.1/db_1/dbs
复制文件, init后跟CDB名称
cp init.ora inittest.ora
编辑该文件
vim inittest.ora
注意:如下目录及四个文件夹必须先创建, 而且用户和组必须是oracle:oinstall 或者 oracle:dba, 权限也必须是可读写。
/u01/app/oracle/admin/test
修改文件夹用户和组
chown oracle:oinstall adump/
或者
chown oracle:dba adump/
加入如下脚本,
db_name='TEST'
memory_target=2G
processes = 150
db_block_size=8192
db_domain=''
diagnostic_dest='/u01/app/oracle'
dispatchers='(PROTOCOL=TCP) (SERVICE=testXDB)'
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='undotbs1'
control_files='/u01/app/oracle/oradata/test/control01.ctl','/u01/app/oracle/oradata/test/control02.ctl'
compatible='12.2.0'
audit_file_dest='/u01/app/oracle/admin/test/adump'
audit_trail='db'
nls_territory='CHINA'
nls_language='SIMPLIFIED CHINESE'
local_listener='LISTENER_TEST'
enable_pluggable_database=true
db_unique_name='test'
4:开始创建
root切换为oracle
su -l oracle
sqlplus /nolog
conn / as sysdba
创建spfile文件:
create spfile from pfile;
创建成功后,启动实例
SQL> startup nomount;
ORACLE instance started.
Total System Global Area 2147483648 bytes
Fixed Size 2926472 bytes
Variable Size 1291847800 bytes
Database Buffers 838860800 bytes
Redo Buffers 13848576 bytes
SQL>
执行create database脚本:
注意:目录及文件夹必须先创建, 而且用户和组必须是oracle:oinstall 或者 oracle:dba, 权限也必须是可读写。
create database test --数据库名称
user sys identified by orcl --超管
user system identified by orcl --超管
logfile group 1 ('/oracle/app/oracle/admin/test/redo01a.log','/oracle/app/oracle/admin/test/redo01b.log') size 100m,
group 2 ('/oracle/app/oracle/admin/test/redo02a.log','/oracle/app/oracle/admin/test/redo02b.log') size 100m,
group 3 ('/oracle/app/oracle/admin/test/redo03a.log','/oracle/app/oracle/admin/test/redo03b.log') size 100m
maxloghistory 1
maxlogfiles 16
maxlogmembers 3
maxdatafiles 1024
character set al32utf8
national character set utf8
extent management local
datafile '/oracle/app/oracle/admin/test/system01.dbf' size 700m reuse autoextend on next 1G maxsize unlimited
sysaux datafile '/oracle/app/oracle/admin/test/sysaux01.dbf' size 550m reuse autoextend on next 1G maxsize unlimited
default tablespace users
datafile '/oracle/app/oracle/admin/test/users01.dbf' size 500m reuse autoextend on maxsize unlimited
default temporary tablespace tempts1
tempfile '/oracle/app/oracle/admin/test/temp01.dbf' size 20m reuse autoextend on next 640k maxsize unlimited
undo tablespace undotbs1
datafile '/oracle/app/oracle/admin/test/undotbs01.dbf' size 200m reuse autoextend on next 5120k maxsize unlimited
enable pluggable database
seed --pdb名,系统默认,不要更改
file_name_convert = ('/oracle/app/oracle/admin/test',
'/oracle/app/oracle/admin/test/pdb1')
system datafiles size 125m autoextend on next 10m maxsize unlimited
sysaux datafiles size 100m
user_data tablespace usertbs
datafile '/oracle/app/oracle/admin/test/pdb1/usertbs01.dbf' size 200m reuse autoextend on maxsize unlimited;
出现: Database created则是创建成功了。
5: 运行脚本
@?/rdbms/admin/catcdb.sql
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
@?/rdbms/admin/utlrp.sql
@?/sqlplus/admin/pupbld.sql
创建完成;
show con_name;
select name, cdb from v$database;
SQL> select name, cdb from v$database;
NAME CDB
--------------------------- ---------
test YES
SQL>
6: 修改监听, 以便可以远程连接
进入如下目录:
/u01/app/oracle/product/12.2.0.1/db_1/network/admin
修改 listener.ora 文件:。保存退出。服务器端
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = test)
(SID_NAME = test)
)
)
修改:tnsnames.ora 文件为如下: 客户端。保存退出。
LISTENER_TEST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
TEST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = test)
)
)
修改: vim /etc/oratab, 加入test,保存退出。
至此, 创建和配置完成。需要重启数据库。
监听停止与启动
/u01/app/oracle/product/12.2.0.1/db_1/bin/lsnrctl stop
/u01/app/oracle/product/12.2.0.1/db_1/bin/lsnrctl start
数据库停止与启动
/u01/app/oracle/product/12.2.0.1/db_1/bin/dbshut
/u01/app/oracle/product/12.2.0.1/db_1/bin/dbstart
创建PDB: https://blog.csdn.net/tang_jian_dong/article/details/95059918
pdb 创建后: 自动启动:
在根容器中输入如下命令:
CREATE OR REPLACE TRIGGER open_pdbs
AFTER STARTUP ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN';
END open_pdbs;
重启后, 就可以自动启动pdb 了。