目录
- 一、所有PDB共享的内容
- 二、pdb从cdb1迁移到cdb2
- 三、About RPM-Based Oracle Database Installation
- 四、Oracle 12C R2-新特性-PDB lockdown profile
- 五、参数FAST_START_MTTR_TARGET的理解
- 六、Oracle实例恢复(instance recovery)的过程
- 七、关于CDB,PDB,CDB$ROOT,CDB$SEED,application container,application seed
- 八、Applications
- 九、virtual private catalog
- 十、关于memory advisor
- 十一、性能优化分析器
- 十二、FLASHBACK
- 十三、ORACLE11g -- Oracle Restart新特性
- 1、Oracle restart是监控以下组件并在发生异常时能够自动重启的功能。
- 2、不能加到oracle restart configuration的部件:
- 3、Oracle restart只能在stand alone环境中执行,即非cluster环境。
- 5、启用oracle restart功能
- 6、Oracle Restart特性
- 7、srvctl和sql*plus的区别
- 8、对于dataguard的支持:
- 9、oracle restart 使用ons服务和advanced q来发布FAN(fast application nogification)ha事件。
- 10、Enabling FAN Events in an Oracle Restart Environment
- 十四、关于配置Oracle-Home只读模式
- 十五、Oracle安装与操作系统用户组
- 十六、关于GI for a standalone Server
- 十七、关于GI upgrade
- 十八、关于DBUA
- 十九、Orcle 12.2新特性 --- PDB Archive Files (.pdb Files)
- 二十、 关于配置Oracle-Home只读模式
- 二十一、如何启用Read only Home
- 二十、关于Oracle 12c新特性---Rapid Home Provisioning (RHP)
- 二十一、关于rman recover tables
一、所有PDB共享的内容
Background processes Shared/process memory Oracle metadata Redo log files Control files (所以pdb 使用rman备份时,) Undo tablespace (可以单独为PDB创建undo表空间(在dbca时选择),也是官方建议的) dig_info(adr自动诊断存储库的目录,是所有cdb,pdb共享的)
二、pdb从cdb1迁移到cdb2
更多方法见:https://www.topunix.com/post-7631.html
前提条件:
(1)两个cdb都是local undo
(2)两个cdb日志模式都是归档模式。
1、方法1:使用xml方式导出(CDB1 to CDB2)
xml文件中记载了所有数据文件,如果是另一套系统的CDB,把数据文件拷过去,位置修改为xml文件的位置,或者修改xml文件的位置即可。
(1)在cdb1导出
SQL>alter pluggable database orclpdb1 close; SQL>alter pluggable database orclpdb1 unplug into '/oracle/orclpdb1.xml'; 另:如果要重新插入到cdb1,则需要先删除orclpdb1(但不删除数据文件including datafiles) sql> drop pluggable database orclpdb1; SQL> create pluggable database orclpdb1 using '/oracle/orclpdb11.xml';
(2)在cdb2导入
SQL>create pluggable database orclpdb1 using '/oracle/xmlfile1.xml';
2、方法2:使用存档文件插入PDB(导出单个文件)
这种方法可以导出整个数据库。这种情况可以删除pdb的文件。
sql> drop pluggable database orclpdb1 including datafiles;
SQL> create pluggable database orclpdb1 using '/tmp/orclpdb1.pdb';
但导出的整个orclpdb1.pdb文件只能在cdb下面插入一次,因为其包含GUID,如果第二次使用会报:
SQL> create pluggable database orclpdb12 using '/tmp/orclpdb1.pdb';
create pluggable database orclpdb12 using '/tmp/orclpdb1.pdb'
*
ERROR at line 1:
ORA-65122: Pluggable database GUID conflicts with the GUID of an existing container.
3、远程PDB1,从CDB1到CDB2的克隆,使用DBCA/
4、关于PDB中的snapshot
(1)full or sparse copy
A PDB snapshot is a point-in-time copy of a PDB. The source PDB can be open read-only or read/write while the snapshot is created. You can create snapshots manually using the SNAPSHOT
clause of CREATE PLUGGABLE DATABASE
(or ALTER PLUGGABLE DATABASE
), or automatically using the EVERY interval
clause.
If the storage system supports sparse clones, then the preceding command creates a sparse copy. Otherwise, the command creates a full copy.
(2)Contents of a PDB Snapshot
The contents of a PDB snapshot depend on whether the underlying file system supports sparse files.
5、关于database resource manager
(1)cdb-level可以限制pdb的内存,cpu等
(2)pdb-level可以限制自己的内存,cpu
6、关于角色创建
(1)CDB$ROOT下不允许单独创建角色,SQL> create role role1 container=current;
(2)CDB$ROOT下创建角色,SQL> create role role1 ; --所有的下述pdb以及app_root,app_pdb都有了角色。
7、关于升级
pdb或cdb中,open_mode 为upgrade 状态才能升级
8、an application container
It must have an application root PDB;
9、 perform cross-platform PDB transport using XTTS,
A backup of the PDB must exist, taken using the BACKUP command with the ro PLATFORM clause
三、About RPM-Based Oracle Database Installation
Starting with Oracle Database 18c, you can install a single-instance Oracle Database or an Oracle Database Instant Client software using RPM packages.
An RPM-based installation performs preinstallation checks, extracts the database software, reassigns ownership of the extracted software to the preconfigured user and groups, maintains the Oracle inventory, and executes all root operations required to configure the Oracle Database software for a single-instance Oracle Database creation and configuration.
The RPM–based installation process detects when the minimum requirements for an installation are not met and prompts you to finish these minimum preinstallation requirements.
An RPM-based installation performs a software-only Oracle Database installation and creates an Oracle home. After the Oracle home is created, you can then use Oracle Database Configuration Assistant (Oracle DBCA) to create an Oracle Database.
The RPM-based installation process provides you with the option to create a database with the default settings using the /etc/init.d/oracledb_ORCLCDB-19c
service configuration script.
四、Oracle 12C R2-新特性-PDB lockdown profile
https://blog.csdn.net/qianglei6077/article/details/90110495
在CDB下创建一个profile,这个Profile将对全局可用:
SQL> connect / as sysdba Connected. SQL> CREATE LOCKDOWN PROFILE enmotech; Lockdown Profile created. SQL> ALTER LOCKDOWN PROFILE enmotech DISABLE STATEMENT = ('ALTER SYSTEM'); Lockdown Profile altered.
连接到PDB YHEM,在PDB级别启用lockdown profile :
SQL> connect sys/oracle@yhem as sysdba Connected. SQL> ALTER SYSTEM SET PDB_LOCKDOWN = enmotech; System altered.
测试一下,可以看到所有的ALTER SYSTEM的操作都被禁用了:
看下面如果
- If you set
PDB_LOCKDOWN
while connected to a CDB root, then the lockdown profile applies to all PDBs in the CDB. It does not apply to the CDB root.- cdb可以影响pdbs和cdb
- If you set
PDB_LOCKDOWN
while connected to an application root, then the lockdown profile applies to the application root and all PDBs in the application container.- application root可以 影响all pdbs in the application container
- If you set
PDB_LOCKDOWN
while connected to a particular PDB, then the lockdown profile applies to that PDB and overrides the lockdown profile for the CDB or application container, if one exists.- 非常规的pdb的文件可以影响cdb或application container
五、参数FAST_START_MTTR_TARGET的理解
(1)FAST_START_MTTR_TARGET参数的作用和实现方法
参数FAST_START_MTTR_TARGET参数是一个加快实例恢复的参数,我们可以根据服务界别来定义一个合理的、可接受的值。该值得单位为秒。比如设定为60S,假定该值处于合理的情况之下,则一旦实例崩溃,在60S以内实例应当能够被恢复。合理即该值不能太大,也不能太小。太大则实例恢复所需的时间较长,太小则导致大量数据的及时写入,增加了系统的I/O。
影响实例恢复时间长短的主要因素是从最近检查点位置到联机重做日志尾部之间的距离。距离越长则所需要的cache recovery和undo、redo的时间越长。所以如何有效的缩短最近检查点位置与联机重做日志尾部之间的距离,正是FAST_START_MTTR_TARGET的目的。
FAST_START_MTTR_TARGET的值实际上是通过触发检查点来实现它的目的的。当内存中产生的dirty buffer所需的恢复时间(estimated_mttr)到达FAST_START_MTTR_TARGET所指定的时间,则检查点进程被触发。检查点进程一旦被触发,将通过DBWn进程按检查点队列顺序将脏数据写入到数据文件,从而缩短了最后检查点位置与联机重做日志间的距离,减少了实例恢复所需的时间。
六、Oracle实例恢复(instance recovery)的过程
--shutdown状态 --startup nomount阶段--->加载参数文件,启动实例实例,oracle进程会根据参数文件开创共享内存池。 --mount过程------------->oracle会根据nomount阶段的参数文件来寻找控制文件的名称和位置,一旦查找到立即锁定该控制文件,控制文件里记录了数据库中的数据文件、日志文件、检查点信息等非常重要的信息。 --mounted后------------->首先将提交的事物前滚,将数据库恢复到实例失败时的状态 --open过程-------------->重新执行提交以及回滚的操作(即,该提交的提交,该回滚的回滚)。【open阶段会根据控制文件记录的信息,定位到数据库文件、日志文件等,正式开启实例和数据库之间的桥梁。如果数据文件或者日志文件缺少,那么open失败。】 --opened
七、关于CDB,PDB,CDB$ROOT,CDB$SEED,application container,application seed
1、架构图
2、创建application container
(1)创建一个application container 名为:APP1_ROOT
SQL>create pluggable database APP1_ROOT as application container admin user sysapp identified by oracle;
(2)查看视图dba_pdbs,新建的APP1_ROOT 是否是application container
SQL>col PDB_NAME for a20 SQL>col status for a10 SQL>select pdb_id,pdb_name,status,application_root as app_root,application_pdb as app_pdb from dba_pdbs;
PDB_ID PDB_NAME STATUS APP_ROOT APP_PDB ---------- -------------------- ---------- --------- --------- 2 PDB$SEED NORMAL NO NO 3 ORCLPDB1 NORMAL NO NO 4 ORCLPDB2 NORMAL NO NO 5 ORCLPDB3 NORMAL NO NO 6 ORCLPDB3_CLONE NORMAL NO NO 7 ORCLPDB3_CLONE2 NEW NO NO 8 ORCLPDB1_CLONE3 NEW NO NO 9 ORCLPDB1_CLONE4 NEW NO NO 10 ORCLPDB1_CLONE5 NORMA L NO NO 11 APP1_ROOT NEW YES NO
(3)打开app1_root
09:21:41 SYS@ocporcl>alter pluggable database app1_root open;
3、进入app1_root,并创建app1_root$SEED
Application seed与CDB中的PDB$SEED类似,在使用Application seed做为Application PDBs的创建模板时,你可以快速且容易的创建一个满足要求的Application PDB,Application Container中最多只能创建一个Application seed,当然也可不包含Application seed。
我们可以在Application root中使用CREATE PLUGGABLE DATABASE带有AS SEED子句来创建Application seed,创建时,Application seed可以有如下几种来源,比如CDB seed、克隆现有的PDB或non-CDB以及插入已拔出的PDB,在使用AS SEED子句创建Application seed时,不要需要为其指定名称,固定的命名规则为application_container_name$SEED,例如在Application Container:qdatacon1中创建的Application seed将被命名为qdatacon1$SEED。
SQL> alter session set container=app1_root; SQL>create pluggable database as seed admin user appseedadm identified by oracle; SQL>alter session set container=CDB$ROOT;
SQL>select pdb_id,pdb_name,status,application_root as app_root,application_pdb as app_pdb from dba_pdbs;
4、在APP1_ROOT下创建APP1_PDB1,APP1_PDB2
(1)创建app_pdb
SQL>>alter session set container=app1_root; SQL>create pluggable database app1_pdb1 admin user apppdb1 identified by oracle; SQL>create pluggable database app1_pdb2 admin user apppdb2 identified by oracle;
SQL>col PDB_NAME for a20 SQL>col status for a10 SQL>col PDB_NAME for a20 SQL>select pdb_id,pdb_name,status,application_root as app_root,application_pdb as app_pdb from dba_pdbs; PDB_ID PDB_NAME STATUS APP_ROOT APP_PDB ---------- -------------------- ---------- --------- --------- 11 APP1_ROOT NORMAL YES NO 12 APP1_ROOT$SEED NEW NO YES 13 APP1_PDB1 NEW NO YES 14 APP1_PDB2 NEW NO YES
(2)通过视图cdb_pdbs查看层级关系
SQL>SELECT LPAD(' ', (LEVEL-1) * 2,' ') || pdb_name AS pdb_name, application_root, application_pdb, application_seed, status, pdb_id, application_root_con_id FROM cdb_pdbs START WITH application_root_con_id IS NULL CONNECT BY PRIOR pdb_id = APPLICATION_ROOT_CON_ID ORDER SIBLINGS BY pdb_id;
(3)同步app1_pdb1
当Applicatoin PDB创建成功,可以使用sync命令将它与Application root中定义的Application进行同步。
SQL>alter session set container=app1_pdb1; SQL>alter pluggable database application all sync;
八、Applications
在“Application”的维护命令中可能最常用的就是install、patch、upgrade以及uninstall,下面对三个命令做简单描述。
1、安装application
(1)在app1_root下安装应用
当使用alter pluggable database带有begin install子句时,即开始一个“Application”的安装,这里可以理解为一个区域的开始,当安装完成后在Application PDB中使用sync命令同步相应的“Application”将会被自动安装在本PDB内。
SQL> alter session set container=app1_root; SQL> alter pluggable database application app1_user_app2 begin install '1.0';
(2)在安装期间创建表空间/用户/表
SQL> create tablespace test_tbs datafile size 10m; SQL> create user test identified by 123 default tablespace test_tbs quota unlimited on test_tbs; SQL> grant connect,resource to test; SQL> create table test.test01 sharing=data(id number,name varchar2(10)); SQL> insert into test.test01 values(1,'LLL01'); SQL>commit;
SQLl>select * from test.test01; ID NAME ---------- ------------------------------ 1 LLL01
(2)使用end install命令结束app1_user_app的安装
SQL> alter pluggable database application app1_user_app2 end install '1.0';
(3)通过dba_applications
视图查看,已经安装的Application
SQL>col app_name for a40; SQL>col app_version for a20; SQL>select app_name,app_id,app_version,app_status from dba_applications;
2、同步application到pdb
Application安装完成后,可以在该Application root下的Application PDB中使用sync命令来进行同步
SQL>alter session set container=app1_root; SQL>>alter pluggable database app1_pdb1 open; SQL>alter session set container=app1_pdb1; SQL>>select * from test.test01; select * from test.test01 * ERROR at line 1: ORA-00942: table or view does not exist SQL>alter pluggable database application app1_user_app2 sync; Elapsed: 00:00:00.21 11:38:42 SYS@ocporcl>select * from test.test01; ID NAME ---------- ------------------------------ 1 LLL01
后面再在app1_root下进行数据的dml操作,app1_pdb1也会自动同步。
但如果在app1_pdb1中进行dml操作,系统不允许,报错:
ORA-65097: DML into a data link table is outside an application action.
3、patch an application
当我们使用end install子句将“Application”封闭后,如果想再次在“Application”中创建对象(table/view/packages/sequence等),以及对“Application”内已经存在的对象进行alter操作时,我们可以使用patch子句对现有的“Application”进行修补操作。
可以create新表,ater表结构等,但不能drop表。
(1)开始一个patch,并且在application内创添加表以及更改现存表的表结构
SQL> alter pluggable database application app1_user_app2 begin patch 12345 minimum version '1.0';
SQL> create table test.test02 sharing=metadata(id number,name varchar2(10));
SQL> insert into test.test02 values(21,'LLL21');
SQL> commit;
(2)尝试删除test.test01这个表(提示在patch下不允许删除表)
SQL>drop table test.test01; drop table test.test01 * ERROR at line 1: ORA-65270: operation is not allowed in an application patch
(3)结束patch,
SQL>alter pluggable database application app1_user_app2 end patch;
(4)查看版本,
>select app_name,patch_status,patch_number,patch_min_version from dba_app_patches; APP_NAME PATCH_STAT PATCH_NUMBER PATCH_MIN_ --------------- ---------- ------------ ---------- APP1_USER_APP2 INSTALLED 12345 1.0
(5)进入app1_pdb1同步
SQL> alter pluggable database application app1_user_app2 sync; SQL> select * from test.test02;
4、Upgrade an Application
对“Application”我们可以使用patch来对其进行修补操作,但修补操作只限添加/更改等,无法对已经存在“Application”中的公共对象进行删除操作,如果我们想对公共对象进行删除操作,可以使用UPGRADE子句对现有的“Application”进行升级。
在升级的过程中,Oracle会首先自动创建Application root的Clone版本,Clone版本创建完成后,Application PDBs将指向Clone版本的Application root,“Application”将继续执行升级操作,升级完成之后,Application root的Clone版本将继续被保留,并且为不同步“Application”的Application PDB提供服务,同步“Application”后的Application PDB将指向升级后的Application root。
(1)升级操作流程图:
(2)升级现有的app1_user_app2;
SQL>alter session set container=app1_root; SQL>alter pluggable database application app1_user_app2 begin upgrade '1.0' to '1.1'; SQL>select app_name,app_id,app_version,app_status from dba_applications;
APP_NAME APP_ID APP_VERSION APP_STATUS ------------------------------------- ---------- -------------------- -------------------- APP$E2001427177A6BE1E055C72F45483EB2 2 1.0 NORMAL APP1_USER_APP2 4 1.0 UPGRADING
SQL>show pdbs; --应该有个clone的版本,在CDB下面了
(3)可以删除表test.test01;
SQL>>drop table test.test01;
(4)结束升级
SQL>alter pluggable database application app1_user_app2 end upgrade;
(5)查看版本
SQL>select app_name,app_id,app_version,app_status from dba_applications;
APP_NAME APP_ID APP_VERSION APP_STATUS
-------------------------------------- ---------- ------------- --------------------
APP$E2001427177A6BE1E055C72F45483EB2 2 1.0 NORMAL
APP1_USER_APP2 4 1.1 NORMAL
5、Uninstall an Application
“Application”的卸载后并不会从数据字典中将该“Application”删除,它会被标记为UNINSTALL,以便“Application”不可以进行upgrade/patch/uninstall等操作,当uninstall命令发出后,需要将该“Application”中包含的对象全部删除.
(1)卸载
SQL>>alter pluggable database application app1_user_app2 begin uninstall; SQL>>alter pluggable database application app1_user_app2 end uninstall;
(2)卸载后的查询
(3)卸载后的状态
表test.test01是extended data-linked方式,数据存储在Application root的test_tbs中,如果卸载了应用app1_user_app2后,在应用程序容器app1_root中无法查询test.test01的数据,同是在应用程序pdb app1_pdb1中也查不到了。相当于一个远程连接。
表test.test02是metadata-linked方式,数据存储在本地,所以在app1_pdb1中也有一份,如果卸载了应用app1_user_app2后,在应用程序容器app1_root中无法查询test.test01的数据,但在在应用程序pdb app1_pdb1中可以查到;但如果在app1_pdb1中进行了同步,SQL>alter pluggable database application app1_user_app2,同步完成后,test.test01的数据也查不到。
6、总结:
如果在app1_root,在安装application期间创建表空间/用户/表,那么这个用户是在application pdbs中都存在
如果在app1_root下直接创建的用户,那么在application pdbs中是不同步的。
九、virtual private catalog
1、关于vpcs陈述
https://docs.oracle.com/en/database/oracle/oracle-database/19/bradv/managing-recovery-catalog.html#GUID-21CEAA23-327A-4D24-9D88-BBB07F0D4645
RMAN uses the Virtual Private Database (VPD) functionality to implement virtual private catalogs.
The VPD functionality is not enabled by default when the RMAN base recovery catalog is created. You need to explicitly enable the VPD model for a base recovery catalog by running the $
ORACLE_HOME
/rdbms/admin/dbmsrmanvpc.sql
script after upgrading the base catalog schema.
十、关于memory advisor
十一、性能优化分析器
https://blog.csdn.net/cqx82781/article/details/100237594
十二、FLASHBACK
1、开启条件
--数据库必须是归档模式并开启归档
--如果用常规的保存点restore point ,必须alter database flashback on;
--如果用保证性的保存点guaranteed restore ponit,则无需flashback on;
2、flashback database和flashback drop常用
3、使用闪回表前提 flashback table
(1)普通用户中需要有 Flashback any table 的系统权限。
(2)有该表的 select、insert、delete、alter 权限。
(3)必须保证该表有 row movement(行移动)。
注意:flashback table无法闪回truncate表,闪回表依靠undo信息,因为truncate不记录到undo中
4、flashback database 属性
(1)always generate redo and undo ----because we can perform :Sql>recover database;
(2)it requires that target database be in archivelog mode;
(3)a database can be flashedback using sql*plus
5、闪回恢复 和flashback log有关
6、闪回查询和undo有关
Flashback Table, Flashback Query, Flashback Transaction Query and Flashback Version Query all rely on undo data, records of the effects of each update to an Oracle database and values overwritten in the update. Used primarily for such purposes as providing read consistency for SQL queries and rolling back transactions, these undo records contain the information required to reconstruct data as it stood at a past time and all changes since that time.
Flashback Drop is built around a mechanism called the Recycle Bin, which Oracle uses to manage dropped database objects until the space they occupied is needed to store new data.
At the physical level, Oracle Flashback Database provides a more efficient direct alternative to database point-in-time recovery. If you have datafiles which merely have unwanted changes, then you can use Flashback Database to cause your current datafiles revert to their contents at a past time. The end product is much like the result of a point-in-time recovery, but is generally much faster because it does not require restoring datafiles from backup, and requires only limited application of redo compared to media recovery.
Flashback Database uses flashback logs to access past versions of data blocks, as well as some information from the archived redo log. Flashback Database requires that you configure a flash recovery area for your database, because the flashback logs can only be stored there. Flashback logging is not enabled by default. Space used for flashback logs is managed automatically by the database, and balanced against space required for other files in the flash recovery area.
十三、ORACLE11g -- Oracle Restart新特性
1、Oracle restart是监控以下组件并在发生异常时能够自动重启的功能。
Database instances Oracle Net listener Database services Automatic Storage Management (ASM) instance ASM disk groups Oracle Notification Services (ONS/eONS)
2、不能加到oracle restart configuration的部件:
不需要自动启动的, 不能通过依赖性自动启动的, 不能用srvctl启动的。
3、Oracle restart只能在stand alone环境中执行,即非cluster环境。
4、设置、激活、启动restart
CRSCTL:需以grid用户或root用户执行
crsctl check | config | disable | enable | start | stop has [-f]
5、启用oracle restart功能
(1)利用oem:High Availability
-> oracle restart改成enabled
命令:srvctl enable | disable
Restart组件的设置
(2)利用srvctl utility
--用dbca建库时相关组件会自动增加到oracle restart配置里。
手动建库如使用create database命令或先建库后安装oracle restart(grid infrastructure)时,需使用srvctl命令手动增加或删除组件到oracle restart 配置里。 先用srvctl add后用start命令启动component。 手动加的时候需注意,grid用户必须为osdba(dba组)的成员,这是因为grid用户必须以sysdba连接到数据库以便起停数据库。
6、Oracle Restart特性
如果使用srvctl命令关闭某个组件,那么下次Oracle restart不会自动启动这个组件;而使用srvctl命令启动了此组件,则Oracle restart下次会自动启动此组件。
sql*plus,lsnrctl,asmcmd等utility和Oracle restart是集成的,如果使用上述utility去停止某个组件,oracle restart认为是正常关闭的,所以不自动重启组件。
7、srvctl和sql*plus的区别
srvctl记录各个组件之间的依赖性,如先起ASM库再起DB,sql*plus则不具有依赖性。
8、对于dataguard的支持:
Oracle restart和data broker集成。
如果使用data broker配置了database的角色,则oracle restart configuration会根据新角色自动更新database configuration,
如果不使用data broker,则要在oracle restart configuration中手动修改数据库角色。当加一个数据库服务到oracle restart configuration,可以给服务指定一个或多个dataguard role。
9、oracle restart 使用ons服务和advanced q来发布FAN(fast application nogification)ha事件。
Application High Availability with Services and FAN
Managing Unplanned Outages
Managing Planned Outages
10、Enabling FAN Events in an Oracle Restart Environment
To enable Oracle Restart to publish Fast Application Notification (FAN) events, you must create an Oracle Notification Services (ONS) network that includes the Oracle
Restart servers and the integrated clients.
Client中包括 CMAN,JDBC,Universal Connection pool(UCP)等等。如果想加OCI或ODP.NET client需要激活aq ha notifications的服务。ONS须在server上执行。
Srvctl add ons -> srvctl enable ons -> srvctl start ons OCI Client配置: srvctl modify service -d proddb -s gl.us.example.com -q true -l primary -e select -m basic -z 5 -w 180 -j long Note: Oracle Call Interface does not manage UP events.
十四、关于配置Oracle-Home只读模式
从Oracle Database 18c开始,您可以通过将只读Oracle home部署为软件映像,从而简化跨多个数据库服务器的软件补丁和大规模发布。
只读Oracle home (ORACLE_HOME)可以防止在Oracle home目录中创建和修改文件。要以只读模式配置Oracle home,首先要使用纯软件部署安装Oracle数据库软件,然后在创建侦听器和数据库之前将其配置为只读Oracle home。
传统的读写Oracle home包含特定于实例的文件,因此如果您要对它们进行补丁,那么必须分别对它们进行补丁。但是,当Oracle home是只读的时,特定于实例的文件将单独存储在Oracle基目录(ORACLE_BASE)中,而不是Oracle home。由于这种配置,您可以使用只读Oracle home作为软件映像,可以跨多个数据库服务器共享它,因为它只存储静态文件。 此选项简化了补丁和大规模推出,因为当您希望将补丁分发到多个数据库服务器时,只需更新一个Oracle主映像。
除了传统的ORACLE_BASE和ORACLE_HOME目录之外,在只读Oracle主目录中还存在以下附加目录:
- ORACLE_BASE_HOME:这是ORACLE_BASE目录中的一个子目录。此目录包含特定于用户的文件、特定于实例的文件和日志文件。
- ORACLE_BASE_CONFIG:此目录与ORACLE_BASE目录相同。此目录包含特定于实例的动态文件,如配置文件。
十五、Oracle安装与操作系统用户组
OSDBA用户组(dba) OSDBA是我们必须要创建的一种系统DBA用户组(dba),若没有该用户组我们将无法安装数据库软件及执行管理数据库的任务。
OSOPER用户组(oper) OSOPER是一种额外的用户组(oper),我们可以选择要不要创建该用户组,创建该用户组可以满足让os用户行使某些数据库管理权限(包括SYSOPER角色权限)的目的。注意SYSOPER的权限包括startup和shutdown,所以要小心为该用户组添加成员。
我们在11.2的GI中常用的ASM用户组有以下三个:
OSASM(asmadmin)用户组 如果使用ASM,那么我们必须创建osasm(asmadmin)用户组,该OSASM用户组的成员将被赋予SYSASM权限,以满足组成员管理Oracle Clusterware和Oracle ASM的权限需求。
OSDBA for ASM group(asmdba)用户组 OSDBA(asmdba)用户组的成员将被赋予读写访问ASM文件的权限。GI/CRS拥有者用户和所有oracle数据库软件的拥有者必须是该组的成员。同时所有OSDBA(dba)用户组的成员也必须是asmdba组的成员。
OSOPER for ASM(asmoper)用户组 asmoper和osoper类似都是额外的可选择创建的用户组,创建该独立的用户组以满足赋予用户一套受限的ASM实例管理权限(ASM的SYSOPER角色),该权限包括了启动和停止ASM实例,默认情况下OSASM(asmadmin)组成员将拥有所有SYSOPER的ASM管理权限。 在11.2的GI/CRS环境中一般会创建grid或griduser用户来管理GI软件和ASM实例,以如下方式创建grid用户:
十六、关于GI for a standalone Server
1、110
(1)安装过程包含Oracle Restart和ASM软件 --includes both Oracle Restart and asmsoftware。
(2)在安装过程创建磁盘组 --create one disk group during installation;
(3)ASM 要求将操作系统组OSASM和OSDBA为其安装所有者的辅助组。
2、78
(1)THE CSS daemon runs from The GI home
(2)supp0rt volume management,file system,automatic restart capabilites;
3、57 prerequisite——
(1)the Oracle Inventory group install
(2)an operating system user to own this installation;
十七、关于GI upgrade
十八、关于DBUA
十九、Orcle 12.2新特性 --- PDB Archive Files (.pdb Files)
When a pluggable database (PDB) is unplugged, all data files associated with a PDB along with the PDB manifest need to be copied or moved individually over to the remote server where it is plugged into another multitenant container database (CDB). With this new feature, a you can choose to create a single PDB archive file, a compressed file with the .pdb extension, that contains the PDB manifest and all of the data files when unplugging a PDB. When plugging in a PDB, the presence of a.pdb file is interpreted and the PDB is plugged into the CDB. You can choose to run the PDB plug-in compatibility test directly on the PDB archive without extracting the PDB manifest file from the archive.
从12.2有了这个新功能,你可以选择创建一个单一的PDB归档文件,一个带有.pdb扩展名的压缩文件,其中包含PDB元数据和PDB的所有数据文件。
这个功能很实用,大大减少了迁移PDB的复杂性。
导入到归档文件中(. pdb)
SQL> alter pluggable database pdb1 unplug into '/software/backup/pdb1.pdb' ; Pluggable database altered
在unplug一个pdb的时候,如果将扩展名定义为.pdb,oracle就会创建一个.pdb归档文件。包含pdb数据文件和xml元数据文件的压缩文件。创建archive file之后,就不用分开拷贝数据文件和xml文件了。
二十、 关于配置Oracle-Home只读模式
从Oracle Database 18c开始,您可以通过将只读Oracle home部署为软件映像,从而简化跨多个数据库服务器的软件补丁和大规模发布。
只读Oracle home (ORACLE_HOME)可以防止在Oracle home目录中创建和修改文件。要以只读模式配置Oracle home,首先要使用纯软件部署安装Oracle数据库软件,然后在创建侦听器和数据库之前将其配置为只读Oracle home。
传统的读写Oracle home包含特定于实例的文件,因此如果您要对它们进行补丁,那么必须分别对它们进行补丁。但是,当Oracle home是只读的时,特定于实例的文件将单独存储在Oracle基目录(ORACLE_BASE)中,而不是Oracle home。由于这种配置,您可以使用只读Oracle home作为软件映像,可以跨多个数据库服务器共享它,因为它只存储静态文件。 此选项简化了补丁和大规模推出,因为当您希望将补丁分发到多个数据库服务器时,只需更新一个Oracle主映像。
除了传统的ORACLE_BASE和ORACLE_HOME目录之外,在只读Oracle主目录中还存在以下附加目录:
- ORACLE_BASE_HOME:这是ORACLE_BASE目录中的一个子目录。此目录包含特定于用户的文件、特定于实例的文件和日志文件。
- ORACLE_BASE_CONFIG:此目录与ORACLE_BASE目录相同。此目录包含特定于实例的动态文件,如配置文件。
二十一、如何启用Read only Home
如何启用只读Oracle Home目录
要启用只读Oracle Home目录:
-- 已仅安装软件的方式安装Oracle Database
-- 运行roohctl -enable脚本.
在启用只读 Oracle Home 目录之前,Oracle Home不应创建任何数据库或Listener
$ cd $ORACLE_HOME/bin
运行roohctl脚本以启用只读Oracle HOME.
$ ./roohctl -enable
例如 :
$ roohctl -enable
Enabling Read-Only Oracle home.
Update orabasetab file to enable Read-Only Oracle home.
Orabasetab file has been updated successfully.
Create bootstrap directories for Read-Only Oracle home.
Bootstrap directories have been created successfully.
Bootstrap files have been processed successfully.
Read-Only Oracle home has been enabled successfully.
Check the log file /refresh/home/oracle/cfgtoollogs/roohctl/roohctl-180611AM052009.log
确定Oracle Home是否为只读
$ cd $ORACLE_HOME/bin
$ ./orabasehome
如果orabasehome命令的输出与 $ORACLE_HOME相同,则Oracle Home目录处于读/写模式。 如果输出显示路径ORACLE_BASE / homes / HOME_NAME,则表示您的Oracle Home目录处于只读模式。
例如 :
$ orabasehome
/refresh/home/oracle/homes/OraDB18Home1
只读Oracle Home目录中的文件路径和目录的更改
文件路径
目录 Read/Write Oracle Home 文件路径 只读 Oracle Home 文件路径
ORACLE_HOME /refresh/home/oracle/product/18.0.0/dbhome_1 /refresh/home/oracle/product/18.0.0/dbhome_1
ORACLE_BASE /refresh/home/oracle/ /refresh/home/oracle/
ORACLE_BASE_HOME
ORACLE_HOME (或者) /refresh/home/oracle/product/18.0.0/dbhome_1
ORACLE_BASE/homes/HOME_NAME (或者) /refresh/home/oracle/homes/OraDB18Home1
ORACLE_BASE_CONFIG ORACLE_HOME (或者) /refersh/home/oracle/product/18.0.0/dbhome_1 ORACLE_BASE (或者) /refresh/home/oracle/
只读 Home 目录对DBCA的影响
spfile / pfile 会被放置在:
ORACLE_BASE/dbs
或者
/refresh/home/oracle/dbs
只读 Home 目录对DBCA的影响
它的日志将在以下位置生成 :
ORACLE_BASE/cfgtoollogs/dbua
或者
/refresh/home/oracle/cfgtoollogs/dbua
只读Home对补丁的影响
截至18.3版本还没有影响。 opatch和opatchauto将继续像在非Read Only Homes中那样在各自的位置写日志
二十、关于Oracle 12c新特性---Rapid Home Provisioning (RHP)
RHP(Rapid Home Provisioning)是什么
随着IT信息化的发展。现在数据中心的规模越来越大,对管理员的要求也越来越高。同时,用户希望快速访问始终在线的服务,因此对于企业来说,部署和维护必须高效且对业务运行无干扰。为了跟上步伐,必须减少运维复杂性和手动参与的步骤。Oracle RHP (Rapid Home Provisioning) 的解决方案标准化、简化了软件分发和管理。自动化和高效率是她的特点,她最小化了对大规模部署的影响。
Rapid Home Provisioning (RHP) 代表了一种标准的方法,以统一的方式,在软件基础设施的所有体系结构层 (Oracle Database和其他第三方定制软件) 上进行部署、补丁、升级、迁移等工作,尤其是Oracle集群、数据库的部署、升级、补丁、迁移,以及集群节点的伸缩等操作非常便捷。
RHP可以理解成一个独立的集群(仅安装GI即可)。RHP服务是Grid Infrastructure的一部分。Oracle Clusterware会管理RHP的相关组件。这些组件包括RHP Server自身、GNS、一个用于支持HA-NFS的VIP(不论是否使用NFS来存储workingcopy,都是必须的)和用于存储workingcopy快照的ASM集群文件系统(ACFS)。在日常操作中,通过RHP部署的客户端或目标端不依赖于RHP服务。因此,即使RHP服务不可用,已经部署的home不会受到影响。
Rapid Home Provisioning (RHP) 是一种部署软件HOME的方法。我们可以从已安装的HOME中创建Image,并存储和管理,Oracle称之为“Gold Image”。DBA可以在这个“Gold Image”上制作副本(workingcopy),然后把这些副本供应到数据中心的所有目标端。
“Gold Image”代表一个Home,无论是Oracle数据库软件Home,还是第三方的或自定义软件Home。“Gold Image”存储在Oracle自动软件管理集群文件系统 (Oracle ACFS) 中。
RHP的相关元数据存储在Grid Infrastructure Management Repository。Management Database MGMTDB在安装Grid infrastructure时会被创建。
RHP的特点和功能
RHP提供集中的软件部署和维护。软件只需要安装一次,然后存储在RHP服务器上,并且从那里可以随时向数据中心的任何节点或集群供应。主要特征包括:管理现有部署,不需要任何更改、不需要重新配置、也不需要代理或守护程序。
主要优势有
流程自动化,减少人工参与的步骤
简化了数据库相关的安装部署、修补和升级
最大限度地减少维护的影响和风险
支持大规模部署
RHP的基本功能
Gold Images集中存储,包括GI、DB、应用、中间件等
支持安装和配置新的集群和数据库
最小化维护窗口
一条命令就能搞定安装、补丁或升级
内置了还原和从失败点继续的能力执行
支持 自定义工作流
提供审计日志
支持所有部署模型——物理机器、虚拟化、容器、Oracle多租户
http://blog.itpub.net/26736162/viewspace-2703216/
二十一、关于rman recover tables
关于RECOVER TABLE需要注意的几个问题:
l 目标数据库必须被置于读写模式。
l 目标数据库必须被置于归档模式。
l 如果要恢复表或者分区,你必须拥有这些表或者分区存在后的时间的备份。
l 想要恢复单个表分区,COMPATIBLE初始化参数所在的目标库必须设置为11.1.0或以上。
l SYS用户下的表或分区无法恢复。
l 存储于SYSAUX和SYSTEM表空间下的表和分区无法恢复。
l Standby数据库上的表或表分区不能进行恢复。
l 在使用REMAP的情况下,有NOT NULL 约束的表不能进行恢复。
l 确保对于辅助数据库在文件系统下有足够的可用空间,同时对数据泵文件也有同样保证。
l 必须要存在一份完整的数据库备份,至少要有SYSTEM、UNDO、SYSAUX和表所在表空间相关的备份。如果恢复的表在PDB中,那么需要备份Root Container的SYSTEM,SYSAUX、UNDO和PDB的SYSTEM、SYSAUX以及包含了要恢复的表的表空间。