oracle 12c 性能,12c 新性能 总结篇

RAC基本维护

1)检查RAC状态

[grid@rac01 ~]$ crsctl check crs

CRS-4638: Oracle High Availability Services is online

CRS-4537: Cluster Ready Services is online

CRS-4529: Cluster Synchronization Services is online

CRS-4533: Event Manager is online

[grid@rac01 ~]$ olsnodes -n

rac01   1

rac02   2

[grid@rac01 ~]$ srvctl status asm -a

ASM is running on rac01,rac02

ASM is enabled.

[grid@rac01 ~]$srvctl status res -t

[grid@rac01 ~]$ crs_stat -t

2)关闭开启RAC环境

[grid@rac01 ~]$ crs_stop -all

[grid@rac01 ~]$ crs_start -all

3)关闭开启单节点

关闭

[root@rac01 ~]# /u01/app/12.1.0/grid/bin/crsctl stop crs

或者

[grid@rac02 ~]$ srvctl stop listener -n rac01

[grid@rac02 ~]$ srvctl stop nstance -d testshf_n -i TESTSHF1

[grid@rac02 ~]$ srvctl stop asm -n rac01

[grid@rac02 ~]$ srvctl stop nodeapps -n  rac01

开启

[root@rac01 ~]# /u01/app/12.1.0/grid/bin/crsctl start crs

或者

[grid@rac02 ~]$ srvctl start listener -n rac01

[grid@rac02 ~]$ srvctl start nstance -d testshf_n -i TESTSHF1

[grid@rac02 ~]$ srvctl start asm -n rac01

[grid@rac02 ~]$ srvctl start nodeapps -n  rac01

CDB和PDB

简介

Oracle 12C引入了CDB与PDB的新特性,在ORACLE 12C引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为Container Database,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。下面是官方文档关于CDB与PDB的关系图。

b0ad0c900ff1b7c41fe0a09603de5fbd.png

这种CDB与PDB是不是感觉和SQL SERVER的单实例多数据库架构是一回事呢。像PDB$SEED可以看成是master、msdb等系统数据库,PDBS可以看成用户创建的数据库。而可插拔的概念与SQL SERVER中的用户数据库的分离、附加其实就是那么一回事。看来ORACLE也“抄袭”了一把SQL SERVER的概念,只是改头换面的包装了一番。

CDB组件(Components of a CDB)

一个CDB数据库容器包含了下面一些组件:

ROOT组件

ROOT又叫CDB$ROOT, 存储着ORACLE提供的元数据和Common User,元数据的一个例子是ORACLE提供的PL/SQL包的源代码,Common User 是指在每个容器中都存在的用户。

SEED组件

Seed又叫PDB$SEED,这个是你创建PDBS数据库的模板,你不能在Seed中添加或修改一个对象。一个CDB中有且只能有一个Seed. 这个感念,个人感觉非常类似SQL SERVER中的model数据库。

PDBS

CDB中可以有一个或多个PDBS,PDBS向后兼容,可以像以前在数据库中那样操作 PDBS,这里指大多数常规操作。

这些组件中的每一个都可以被称为一个容器。因此,ROOT(根)是一个容器,Seed(种子)是一个容器,每个PDB是一个容器。每个容器在CDB中都有一个独一无二的的ID和名称。

1)连接到CDB数据库

02244e2bb4eee6874275e43efc1878fd.png

4637d9768ea0dc2d2877dc7a7bc274ea.png

21d8afbb9227817c09ab2c8bafc7e3d8.png

2)查看数据库是否为CDB

SQL> select name, decode(cdb, 'YES', 'Multitenant Option enabled', 'Regular 12c Database: ') "Multitenant Option" , open_mode, con_id from v$database; NAME      Multitenant Option                   OPEN_MODE                CON_ID --------- -----------------------------   --------------------         ---------- E      Multitenant Option enabled            READ WRITE                  0

YES表示该数据库是CDB,如果是NO表示是NO-CDB(普通数据库)

3)查看当前容器(Container)

3.1

SQL> show con_name CON_NAME------------------------------CDB$ROOT SQL> select sys_context('userenv', 'con_name') "Container DB" from dual; Container DB----------------------------------------------------CDB$ROOTSQL>

4)查看CDB容器中的PDBS信息

查看CDB中有多少个pluggable database

SQL>  select con_id, dbid, guid, name , open_mode from v$pdbs;     CON_ID       DBID GUID                             NAME                           OPEN_MODE ---------- ---------- -------------------------------- ------------------------------ ----------          2 4071321146 E89E8DA2866E3157E043DE07A8C09238 PDB$SEED                       READ ONLY          3 1930201447 E89E9418B882350CE043DE07A8C092B6 PDBEPPS                        MOUNTED SQL>

5)启动PDB数据库

方式1:

SQL> alter pluggable database PDBEPPS open; Pluggable database altered. SQL> select con_id, dbid, guid, name , open_mode from v$pdbs;     CON_ID       DBID GUID                             NAME                           OPEN_MODE ---------- ---------- -------------------------------- ------------------------------ ----------          2 4071321146 E89E8DA2866E3157E043DE07A8C09238 PDB$SEED                       READ ONLY          3 1930201447 E89E9418B882350CE043DE07A8C092B6 PDBEPPS                         READ WRITE

方式2:

SQL> alter session set container=PDBEPPS;Session altered. SQL> startupPluggable Database opened. SQL>

6)关闭PDB数据库

SQL> alter pluggable database PDBEPPS close;

Pluggable database altered.

SQL> select con_id, dbid, guid, name , open_mode from v$pdbs;

CON_ID       DBID GUID                             NAME                           OPEN_MODE

---------- ---------- -------------------------------- ------------------------------ ----------

2 4071321146 E89E8DA2866E3157E043DE07A8C09238 PDB$SEED                       READ ONLY

3 1930201447 E89E9418B882350CE043DE07A8C092B6 PDBEPPS                        MOUNTED

SQL>

7)在容器间切换

SQL> alter session set container=PDBEPPS;

Session altered.

SQL> show con_name;

CON_NAME

------------------------------

PDBEPPS

SQL>

SQL> alter session set container=CDB$ROOT;

Session altered.

SQL> show con_name;

CON_NAME

------------------------------

CDB$ROOT

8)创建新的PDB

298ba92492fb8dcf66d79b87f00af7cc.png

5533bf55dd16455cca351e78cc0ab637.png

23744ef0ccec5fe7796266b40d6d2791.png

faf4664d613b3af8a013122425505c1a.png

be127308ef010a99dba49ad726abcc73.png

9)重命名PDB

4233dac8c9c271541dc3f3bc453fa069.png

1b5a9d4a0e1300eb2e4200e1f2e3f99c.png

32711f3b8a3e1a73e9dd3b46c1e3a8a5.png

32dad2df364f4e20d165749219ed2c16.png

10)复制PDB 删除PDB

b077332d1c8d84f55dd7597f76429cf7.png

1c51126e647c5a0f419402b4ad83a38d.png

6441c254f66e448594a33a545c28b290.png

584884b2608b8b3c38ac4ba7d1eee323.png

表空间操作

1)创建CDB永久表空间

SQL> create tablespace cdb001 datafile '+DATA' size 10m;

Tablespace created.

1823b11edabf8ec07e4bb67d71683ad6.png

2)创建PDB永久表空间

SQL> alter session set container=bcl3;

Session altered.

SQL> select status from v$instance;

STATUS

------------

OPEN

SQL> create tablespace pdb_bcl301 datafile '+DATA' size 10m;

Tablespace created.

0e0ef36e02e295512e5ae62924818fdf.png

3)创建CDB临时表空间

SQL> create temporary tablespace cdb_temp001 tempfile '+DATA' size 10m;

Tablespace created.

8a77d11dd82a245df5905b8778795565.png

4)创建PDB临时表空间

a900e9878ce0cf2bf63baa3291469a06.png

用户和角色

简介

自Oracle12c引入CDB数据库以后,使得多数据库对用户和角色的管理变得更加简洁方便,如果数据库使用CDB进行管理,那么在CDB中创建用户的用户名需要以c##开头,并且在CDB中创建的用户会复制到所有的PDB中,除了SEED PDB。

1)创建删除CDB用户或角色

1a6be028670d005c8fa0a35f7e4385f9.png

c8fcbced1e1306c79d419dd9ecce5bd3.png

21240f9dccd612c7297ba746258911e6.png

2)创建删除PDB用户或角色

e9868eb5b184dd507e32765377b8a097.png

c38e4e8f7f6b11fa1b8097cbda86edcb.png

5df36c4ceafbb738fcd4936d1b9e3700.png

RMAN 新特性

概述

rman对sql语句支持增强:在rman命令行,可以使用简单的sql语句,对数据库进行直接的操作。

rman分割数据文件增强:在12C之前的版本,ORACLE 11GR2只是对于全备的备份集备份(非增量,非copy备份方式)方式支持数据文件分割备份功能,对于11.2之前的版本均不支持该功能.在12C中rman可以支持对于全备,增量备份,copy备份全部支持分割数据文件备份(CONTROLFILE,SPFILE不支持)。

Oracle 12c还引入sysbackup角色,sysbackup 管理角色覆盖了 备份backup和recovery恢复所需要的权限, 还包括连接到已关闭的 数据库。  系统管理员可以将sysbackup而非sysdba赋予给那些只操作备份和恢复的用户,由此减少了SYSDBA这个超级用户权限过重的问题。与SYSDBA相反,SYSBACKUP不包含访问所有表的SELECT ANY TABLE权限。

1)rman对sql语句支持增强

1c8e0006c1c9b4b42d97900b454942bd.png

2)rman对分割数据文件的增强

1cd152f87d2c48aa7908fc5c51ecf1e5.png

112e4d28132c5d6775902f73ddd27959.png

3)备份CDB(在备份CDB的同时,会备份所有的PDB)

4efaa9b7eb3b144c7da62045c6a377b9.png

6384cdc68c1da2904dec77b8845f7940.png

4)备份PDB

使用CDB会话备份PDB

bee6c075f836d5f2cbea761654decc5d.png

配置TNS,登入PDB备份

8c31651a5118a55552b7f31a57ab152f.png

9f8edb4def8106270caee77363411783.png

af2998b871d91c8b23eea3aad14ddc04.png

b27c229301c6df80dd21f4175e0bf8c3.png

5)全部数据文件丢失的恢复

dad5c33b26dadb1d23996a5e1254d267.png

删除所有TEST001数据文件

18c1ca53dd6fe2044e93e6f1b79b1a39.png

f0755c12c57eb3404553389e0b97d797.png

cf14b889f61ba3358a037ede00e21a8f.png

7379460a332c9d2410342481c48cb2a9.png

bd72ebe4248c09f6f2597dc5febd4d5d.png

使用rman恢复(比较慢)

777a01cbda2ea70235a08f176f7950dd.png

d82bcf658be39d2ee207e466ead4d300.png

Recover会处于等待界面很久链接中断

e83e703e7a5903a89919eeac838ede6e.png

登入数据库进行recover

6ca92d187570650ac5806736531cf3e8.png

d9f2f3b41fb957578dd90f4571496cf5.png

49a6ca61893390923eecdcaad003c58c.png

6)单个数据文件丢失的恢复

ad3873c9c9896317fbece0b5b61f6741.png

01939a79bf1cd55c7f4d802e6c8b6fca.png

7ecafeb5d7f43743cbb06511a4d634bb.png

3e6cacaefe04bc9a7b1cbec873ed9006.png

CBD中不能直接将数据文件OFFLINE

CBD开启归档

两节点关闭CDB(PDB不允许单独设置归档,但可以设置自己的归档路径)

039ff771c2a6b7db33bbd86595c9a3d5.png

任意一个节点启动数据库到mount状态,设置归档路径

247c03d6350025588a3c4758f93f6836.png

开启归档,打开数据库

f77271f70cef1069bc7b2c316abf5387.png

打开另一节点,查看归档状态

072ffbef8c7d1cd2f1fe07f3f88a9ddf.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值