oracle客户端启动(oracle客户端重启)

太平洋在线下载 28 4

  Objectives

  1.对比使用恢复目录作为rman资料库和使用控制文件作为rman资料库的差异;

  2.创建和配置恢复目录;

  3.注册数据库到恢复目录中;

  4.同步recovery catalog;

  5.使用rman存储脚本;

  6.备份recovery catalog;

  7.创建一个虚拟私有目录;

  RMAN Repository Data Storage Comparison of Options

  1.rman的备份信息默认是存放在目标数据库的控制文件中的,存放时间由control_file_record_keep_time参数控制,默认是7天;

  2.同时,也可以把rman的备份信息保存到一个独立的数据库中,叫做recovery catalog;

  3.使用recovery catalog可以保存更长时间的备份信息,当目标数据库的控制文件丢失时非常有用;

  4.recovery catalog可以保存多个目标数据库的备份信息,可以保存RMAN stored s(类似于存储过程,就是一系列rman脚本);

  5.如果只是简单的备份管理需求的话,建议使用控制文件即可,因为如果使用recovery catalog的话,意味着还要对其它的数据库做备份管理,Licence费用;所以,只有在使用recovery catalog带来的好处比较大时才使用;

  Storing Information in the Recovery Catalog

  1.使用recovery catalog的话,在每次更新资料库操作之后和某些操作之前rman都会把数据库结构信息,归档日志,备份集信息,数据文件的镜像信息从目标数据库的控制文件中推送到recovery catalog中;

oracle客户端启动(oracle客户端重启)-第1张图片-太平洋在线下载

  2.查看数据库结构的命令;

  rman target /

  RMAN> report schema;

  3.查看归档日志信息;

  RMAN> list archivelog all;

  4.查看备份集信息;

  RMAN> list backup [of database/controlfile/archivelog];

  5.查看数据文件镜像信息;

  RMAN> list copy [of database/controlfile/archivelog];

  Reasons to User a Recovery Catalog

  1.比控制文件存储更多的历史信息,控制文件中存放备份信息的空间是有限的;

  2.可以使用RMAN存储脚本;

  3.可以针对所有注册的目标数据库创建定制化的报表;因为连接到recovery catalog后就可以查看RC_*的视图,如果不用recovery catalog的话需要连接到每一个目标数据库分别查看相应的v$视图;

  4.使用backup命令时可以使用keep forever子句;keep子句的意义在于创建一个备份单独指定过期策略,不受默认的过期策略影响,而keep forever表示备份永久不过期,所以需要使用recovery catalog来永久保存备份信息;

  5.可以列出目标数据库任何给定时间的数据库结构(数据文件和表空间),report schema [at time|scn|logseq]命令,只有在使用recovery catalog时才可以使用at子句;

  Creating the Recovery Catalog:Three Steps

  1.配置想要存储recovery catalog的数据库;

oracle客户端启动(oracle客户端重启)-第2张图片-太平洋在线下载

  2.创建recovery catalog的用户;

  3.创建recovery catalog;

  Configuring the Recovery Catalog Database

  1.为Recovery Catalog分配空间,要考虑的因素有:

  - 支持的数据库的数量;

  - 归档日志文件的数量和备份信息的数量;

  - 存储的RMAN stored s;

  2.创建表空间,用于作为Recovery Catalog拥有者的默认表空间;

  CREATE TABLESPACE tbs_rc DATAFILE '/u01/app/oracle/oradata/ORCL/tbs_rc01.dbf' SIZE 50M AUTOEXTEND ON MAXSIZE 2G;

  Creating the Recovery Catalog Owner

  1.创建Recovery Catalog拥有者,默认表空间为刚刚创建的表空间,而且要可以无限制使用空间;

  2.需要授予recovery_catalog_owner角色;

  CREATE USER rman IDENTIFIED BY oracle DEFAULT TABLESPACE tbs_rc QUOTA UNLIMITED ON tbs_rc;

  GRANT recovery_catalog_owner TO rman;

  补充:

  查看recovery_catalog_owner角色有哪些权限:SELECT * FROM dba_sys_privs WHERE grantee = 'RECOVERY_CATALOG_OWNER';

  查看有recovery_catalog_owner角色的用户:SELECT * FROM dba_role_privs WHERE granted_role = 'RECOVERY_CATALOG_OWNER';

  Creating the Recovery Catalog

  1.使用catalog的拥有者连接数据库;

  2.执行create catalog命令创建recovery catalog;

  rman catalog rman/oracle@ORCL(如果当前的ORACLE_SID就是就是catalog数据库的SID,就不用使用net_service_name了)

  create catalog;

  Managing Target Database Records in the Recovery Catalog

  1.注册目标数据库到recovery catalog中;

  2.把附加的备份添加到recovery catalog中;

  3.从recovery catalog中移除对目标数据库的注册;

  Registering a Database in the Recovery Catalog

  rman主要做以下三件事:

  1.在recovery catalog表中为目标数据库添加记录;

  2.拷贝目标数据库控制文件信息到recovery catalog表中;

  3.同步recovery catalog与控制文件;

  rman target sys/ORACLE@ORCL catalog rman/oracle@ORCL(rman target / catalog rman/oracle)

  register database

  Use EM to Register a Database

  1.在EM->Availability->Recovery Catalog Settings页面;

  3.如果想要在EM中使用recovery catalog做备份还原的操作,必须使用EM的方式注册目标数据库;

  4.建议不要使用EM配置,本身命令行操作起来已经非常简单;

  Unregistering a Target Database from the Recovery Catalog

  1.如果unregister database,则会从recovery catalog中移除目标数据库的信息,可以再重新的注册目标数据库,但是recovery catalog中只保存重新注册之后的信息;

  2.只有当目标数据库不再使用recovery catalog或者目标数据库不在存在时才unregister;

  rman target / catalog rman/oracle

  unregister database;

  Cataloging Additional Backup Files

  1.CATALOG命令可以把已经存在的备份文件(但是它们的信息并不在控制文件中)添加到catalog中;

  2.当使用rman做还原时可以使用到这些文件;

  3.主要的备份文件类型有:

  - 控制文件拷贝;

  - 数据文件拷贝;

  - 备份片;

  - 归档日志文件;

  - 语法有:CATALOG CONTROLFILECOPY/DATAFILECOPY/BACKPIECE/ARCHIVELOG 'filename';

  4.也可以把某个文件夹中的文件都注册进来:CATALOG RECOVERY AREA|DB_RECOVERY_FILE_DEST NOPROMPT;

  5.start with选项:可以指定文件的前缀,然后使用通配符,把类似的文件都catalog进来;

  把/tmp/bset目录和子目录下的文件都加入到catalog中:catalog start with '/tmp/bset';

  Recovery Catalog Resynchronization:Concepts

  1.当rman执行同步时,会比较recovery catalog中的信息和目标数据库中控制文件信息是否一致,然后更新recovery catalog中缺失或者改变的信息;

  2.有两种重新同步的方式:partial和full

  - partial:比较recovery catalog和控制文件的信息,然后更新备份集,归档日志,数据文件拷贝等元数据信息;

  - full:首先创建一个控制文件快照,用于跟recovery catalog比较,然后做与partial相同的事情,然后会添加数据库结构的变化(比如schema的改变或者表空间的改变);

  3.database schema包括数据文件的名称和位置,在线日志文件,归档日志文件,UNDO段和其它能在控制文件中找到的信息;

  4.如果控制文件改变的信息都在control_file_record_keep_time参数指定的时间内的话,只需要做部分同步即可,否则做完全同步,手动发出resync catalog命令也可以执行完全同步;

  Manually Resynchronizing the Recovery Catalog

  1.当一下三种情况发生时需要手动同步recovery catalog:

  - 当执行rman命令触发部分同步时,recovery catalog不可用时;

  - 当不经常备份目标数据库从而导致recovery catalog没有自动更新在线日志切换或者在线日志归档的信息时;

  - 当目标数据库的物理结构发生变化时;

  2.执行命令;

  resync catalog;

  Using RMAN Stored s

  1.是可选的命令文件,主要是用来管理那些经常使用的rman命令脚本;

  2.对于能够连接到目标数据库和recovery catalog的任何rman客户端都可用;

  3.有两种类型:

  - local:关联到创建脚本时连接的目标数据库,只能在这个目标数据库中使用;

  - global:可以被任何注册到recovery catalog中的数据库使用;

  4.可以从一个文本文件中创建:CREATE [GLOBAL] _name FROM 'file_name';

  (1)创建一个局部脚本;

  rman target sys/ORACLE@ORCL catalog rman/oracle@ORCL

  CREATE backup_tbs_users

  COMMENT "backup users tablespace"

  {

  BACKUP TABLESPACE USERS;

  }

  (2)创建一个全局的脚本;

  rman target sys/ORACLE@ORCL catalog rman/oracle@ORCL

  CREATE GLOBAL backup_whole

  COMMENT "backup whole database and archived redo log files"

  {

  CONFIGURE CONTROLFILE AUTOBACKUP ON;

  ALLOCATE CHANNEL ch1 DEVICE TYPE DISK;

  ALLOCATE CHANNEL ch2 DEVICE TYPE DISK;

  ALLOCATE CHANNEL ch3 DEVICE TYPE DISK;

  BACKUP INCREMENTAL LEVEL 0 TAG backup_whole DATABASE PLUS ARCHIVELOG;

  }

  Executing RMAN Stored s

  1.执行局部的脚本:run{execute _name;};

  2.执行全局的脚本:run{execute global _name;};

  3.execute 命令必须在run块中执行;如果脚本中的命令失败,则接下来的命令不再执行;执行脚本时默认使用的是自动分配channels,可以通过allocate channel命令手动分配;

  Maintaining RMAN Stored s

  1.显示脚本:PRINT [GLOBAL] _name;

  print backup_tbs_users;

  print backup_whole;

  2.把脚本内容转存到文件中:PRINT [GLOBAL] _name TO FILE 'file_name';

  print backup_tbs_users to file '/tmp/backup_tbs_users.rc';

  print backup_whole to file '/tmp/backup_whole.rc';

  3.列出所有的脚本名称:LIST [GLOBAL] NAMES;

  list names;

  4.更新脚本:REPLACE [GLOBAL] _name{ ; }

  5.删除脚本:DELETE _name;

  补充:相关的视图

  SELECT * FROM rman.rc_stored_;

  SELECT * FROM rman.rc_stored__line ORDER BY _name, line;

  Backing Up the Recovery Catalog

  1.首先要明确的是:recover catalog也是Oracle数据库,所以它也需要像其它数据库一样备份;备份Oracle数据库,肯定推荐使用rman;

  2.配置recovery catalog数据库的备份恢复环境的建议:

  - 要运行在ARCHIVELOG模式下;

  - 设置冗余策略大于1:CONFIGURE RETENTION POLICY TO REDUNDANCY n;

  - 备份数据到磁盘或者磁带上;

  - 每次备份数据库都要加上归档日志文件:backup database plus archivelog;

  - 使用控制文件作为rman的资料库,而不是再使用另外的recovery catalog;

  - 配置控制文件自动备份:CONFIGURE CONTROLFILE AUTOBACKUP ON

  Re-Creating an Unrecoverable Recovery Catalog

  如果recovery catalog数据库丢失或者损坏的话,而且使用常规的办法无法恢复时就需要重建catalog,然后执行以下两种命令:

  1.resync catalog命令:从目标数据库的控制文件或者控制文件拷贝来更新recovery catalog中rman资料库;

  2.catalog start with命令:把合法的备份文件加入到catalog中;

  Exporting and Importing the Recovery Catalog

  1.主要是通过exp/imp工具或者expdp/impdp工具做数据的导出导入;

  2.移动recovery catalog从一个数据库到其它的数据库,导入之后不需要再执行create catalog命令,导入过程中自动创建;

  3.也可以作为一个逻辑备份;

  tips:也可以使用可传输表空间的方式导入导出recovery catalog;

  Upgrading and Dropping the Recovery Catalog

  1.如果recovery catalog的版本低于rman客户端的版本,就需要升级catalog:upgrade catalog;

  2.要删除recovery catalog的话使用命令:drop catalog;

  IMPORT CATALOG Command

  1.连接到目标recovery catalog:;

  2.命令解释(查看帮助文档):IMPORT CATALOG [DBID = [, ,…]] [DB_NAME= [, <dbname,…]] [ NO UNREGISTER ];

  - connectStringSpec:源recovery catalog的连接串,如果不指定其它选项的话表示导入所有已注册的数据库的元信息:import catalog rman/oracle@orcl;

  - DBID:指定需要导入的的数据库的DBID列表,如果要导入的数据库已经在目的数据库中注册的话,则会报错;

  - DB_NAME:跟DBID相同,如果数据库名称重复的话,则报错;

  - NO UNREGISTER:默认情况下,从源recovery catalog导入到目的recovery catalog后,数据库会自动的从源recovery catalog中unregister掉,如果使用此选项,则保留在源catalog中的信息

  3.可以从不同的catalog中导入元信息;

  Creating and Using Virtual Private Catalogs(VPC)

  1.如果在生产环境中,多台数据库需要多个人维护,但是给每台数据库都独立使用一个catalog数据库又太浪费,它们的元信息存放在一个catalog中,基于安全的考虑,每个维护人员只能看到自己所维护数据库的元信息,这就是VPC的作用;

  2.就需要两个角色:

  - catalog owner:之前提到的,它是标准catalog的拥有者,具有recovery_catalog_owner角色;可以看到所有注册的目标数据库;

  - virtual catalog owner:也具有recovery_catalog_owner角色,并由catalog owner用户被授予REGISTER DATABASE权限;只能连接到特定的目标数据库和注册目标数据库;

  - 查看自己管理的数据库:SELECT DISTINCT db_name FROM DBINC;

  3.配置VPC的目的就是让VPC的拥有者使用VPC就跟使用标准的catalog一样

  Using RMAN Virtual Private Catalogs

  1.创建标准的catalog; -- 已经创建了;

  rman catalog rman/oracle@ORCL

  create catalog;

  2.创建vpc用户并授权;

  sqlplus / as sysdba

  CREATE USER vpc1 IDENTIFIED BY oracle DEFAULT TABLESPACE tbs_rc QUOTA UNLIMITED ON tbs_rc;

  CREATE USER vpc2 IDENTIFIED BY oracle DEFAULT TABLESPACE tbs_rc QUOTA UNLIMITED ON tbs_rc;

  GRANT recovery_catalog_owner TO vpc1,vpc2; -- 此时它们虽然有recovery_catalog_owner角色,但是看不到注册的数据库;

  查看vpc用户;SELECT * FROM rman.vpc_users;

  3a.授予vpc1用户REGISTER DATABASE权限,则vpc1就可以注册新的目标数据库到VPC中;

  rman catalog rman/oracle@ORCL

  grant register database to vpc1;

  稍后使用vpc1用户创建VPC然后注册数据库;

  3b.直接把某个数据库的catalog权限授予vpc2,这样它就可以直接管理这个数据库;

  rman catalog rman/oracle@ORCL

  grant catalog for database orcl to vpc2;

  查看vpc2用户管理的数据库信息:SELECT * FROM rman.vpc_databases;

  4a.11g中客户端创建VPC;

  rman catalog vpc1/oracle@ORCL

  create virtual catalog;

  rman catalog vpc2/oracle@ORCL

  create virtual catalog;

  4b.11g版本之前客户端创建VPC的方法,了解一下;

  exec catowner.dbms_rcvcat.create_virtual_catalog;

  5.测试:

  查看vpc1管理的数据库信息;

  conn vpc1/oracle

  SELECT DISTINCT db_name FROM DBINC; -- 无记录;

  查看vpc2管理的数据库信息;

  conn vpc1/oracle

  SELECT DISTINCT db_name FROM DBINC; -- ORCL数据库;

  查看vpc1注册数据库;

  rman target / catalog vpc1/oracle@ORCL

  register database; -- 提示可以注册;

  查看vpc2注册数据库;

  rman target / catalog vpc2/oracle@ORCL

  register database; -- 提示无权限;

  6.使用;

  rman target / catalog vpc2/oracle@ORCL

  backup tablespace users

  文章地址:https://www.aixchina.net/Article/177779

  也可以直接搜索公众号名称“AIX专家俱乐部”或微信号“AIXChina”关注

标签: oracle客户端启动

抱歉,评论功能暂时关闭!