Rman 在恢复数据的情况下,借助catalog 可以恢复control file ,还有spfile 等,今天特地配置了一下catalog 数据库:
Rman 在恢复数据的情况下,借助catalog 可以恢复control file ,还有spfile 等,今天特地配置了一下catalog 数据库:
1>在catalog数据库上创建一个表空间供catalog使用
create tablespace rman_ts datafile '/u02/ezhou/rman01.dbf' size 50m extent management local uniform size 126k;
2>在catalog数据库上创建用户并赋予权限
create user rman_user identified by rman_user default tablespace rman_ts quota unlimited on rman_ts;
grant recovery_catalog_owner to rman_user;
grant connect,resource to rman_user;
3:连到catalog 数据库,,建tablespace:
rman catalog rman_user/rman_user
RMAN> create catalog tablespace rman_ts;
recovery catalog created
4:在catalog上配置并启动监听程序,在target数据库上配置本地命名服务.
cd /$Oracle_HOME/network/admin
[oracle@aoracle admin]$ vi tnsnames.ora
PRD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.190.140)(PORT = 1521))
)
(CONNECT_DATA =
(SID = EZHOU)
)
)
好,下面启动监听:lsnrctl start
再lsnrctl status,可以看到status is ready,就可以了。
5>在target数据库的机器上通过本地命名服务连接到catalog数据库
[oracle@aoracle ~]$ rman target / catalog rman_user/rman_user@prd;
Recovery Manager: Release 10.2.0.1.0 - Production on Thu Dec 8 15:14:46 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: EZHOU (DBID=4046377924)
connected to recovery catalog database
好,下面在catalog 数据库上注册target 数据库。
RMAN> register database;
database registered in recovery catalog
starting full resync of recovery catalog
full resync complete
RMAN>
到现在,catalog 的配置就算完成了。
当然下面的文章,也可以参考一下:
1.在目录数据库中创建恢复目录所需的表空间
CREATE TABLESPACE rman_ts DATAFILE '/oradata/RCAT/data/rman.dbf' SIZE 200m;
PS:删除掉该表空间 DROP TABLESPACE rman_ts INCLUDING CONTENTS;
2.在目录数据库中创建RMAN用户
CREATE USER rman IDENTIFIED BY rman DEFAULT TABLESPACE rman_ts TEMPORARY TABLESPACE TEMP QUOTA UNLIMITED ON rman_ts;
PS:删除用户 DROP USER rman CASCADE;
3.给rman用户授权
GRANT recovery_catalog_owner,connect,resource TO rman;
4.新开启一个CMD
rman catalog rman/rman
或者: -C:\>rman
-RMAN>connect catalog rman/rman@idba;
-RMAN>create catalog tablespace rman_ts //创建catalog于rman_ts表空间
5.在D:\oracle\ora92\network\admin\tnsnames.ora建立
PROD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.123.127)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = IDBA)
)
)
6.以sys用户登陆上生产数据库上创建备份用户
-SQL>CREATE USER rman IDENTIFIED BY rman
-SQL>GRANT sysdba TO rman;
7.连接上生产数据库注册
-RMAN>CONNECT TARGET rman/rman@prod
-RMAN>REGISTER DATABASE
##################################################
####################crontab -e####################
##################################################
0 2 28 1 * /oraapp/oracle/dba/full_bkup.sh
10 0 * * 0 /oraapp/oracle/dba/lev0_bkup.sh
10 0 * * 1-2 /oraapp/oracle/dba/lev2_bkup.sh
10 0 * * 3 /oraapp/oracle/dba/lev1_bkup.sh
10 0 * * 4-6 /oraapp/oracle/dba/lev2_bkup.sh
10 3 * * 0 /oraapp/oracle/dba/ora_wk.sh
##################################################
########/oraapp/oracle/dba/DBA_rename.sql#########
##################################################
connect RMAN/RMAN@RCAT;
set echo off
set feedback off
set linesize 1000
set pagesize 0
set verify off
spool /oraapp/oracle/dba/log/rename.txt
select 'dd bs=1024 if=&1 of=/oraapp/oracle/dba/log/RLog_'||to_char(sysdate,'d')||'.txt' from dual;
spool off
host chmod 755 /oraapp/oracle/dba/log/rename.txt
host /oraapp/oracle/dba/log/rename.txt
host rm -rf /oraapp/oracle/dba/log/rename.txt
exit;
##################################################
###########/oraapp/oracle/dba/ora_os.sh###########
##################################################
#!/bin/sh
#
# copy all backup files from the db server72
#
cp /hotbkup/data/orabk/* /hotbkup/data/tmp/ >>/oraapp/oracle/dba/log/bkup.log
#
# move the daily backup to current week directory
#
cp /hotbkup/data/tmp/* /offbkup/data/cweek/ >>/oraapp/oracle/dba/log/bkup.log
#
# remove the yestoday's backup files
#
rm -rf /hotbkup/data/day/* >>/oraapp/oracle/dba/log/bkup.log
#
# copy all the backup file to day directory
#
mv /hotbkup/data/tmp/* /hotbkup/data/day/ >>/oraapp/oracle/dba/log/bkup.log
#
# delete all the db server72's backup files to free diskspace
# must delete at last for security
#
rm -rf /hotbkup/data/orabk/* >>/oraapp/oracle/dba/log/bkup.log
#
# list all the backup file
#
ls -l /hotbkup/data/orabk/ >>/oraapp/oracle/dba/log/bkup.log
ls -l /hotbkup/data/tmp/ >>/oraapp/oracle/dba/log/bkup.log
ls -l /hotbkup/data/day/ >>/oraapp/oracle/dba/log/bkup.log
ls -l /offbkup/data/cweek/ >>/oraapp/oracle/dba/log/bkup.log
#
# send email to dba
#
mail -s "BK_`date "+%Y-%m-%d"`_log" westzq@hotmail.com /oracle/dba/log/bkup.log
##################################################
###########/oraapp/oracle/dba/ora_wk.sh###########
##################################################
#!/bin/sh
#
# remove all the last week backup files
#
rm -rf /offbkup/data/pweek/*
#
# move current week backup file to preview week folder
#
mv /offbkup/data/cweek/* /offbkup/data/pweek/
##################################################
#########/oraapp/oracle/dba/full_bkup.sh##########
##################################################
#!/bin/sh
export ORACLE_HOME=/oraapp/oracle/92
export DBA_HOME=/oraapp/oracle/dba
export ORACLE_SID=RCAT
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_DATE_FORMAT='YYYY-MM-DD_HH24:MI:SS'
$ORACLE_HOME/bin/rman cmdfile $DBA_HOME/full_bk.rcv msglog $DBA_HOME/log/bkup.log
$ORACLE_HOME/bin/sqlplus /nolog @$DBA_HOME/DBA_rename.sql $DBA_HOME/log/bkup.log
/oraapp/oracle/dba/ora_os.sh &
##################################################
#########/oraapp/oracle/dba/full_bkup.rcv#########
##################################################
connect catalog RMAN/RMAN@RCAT;
connect target RMAN/RMAN@PROD;
run {
allocate channel ch1 device type disk;
allocate channel ch2 device type disk;
backup full filesperset=2 tag='Full_%d' format='/oradata/orabk/%T_full_%d_%s_%p' database include current controlfile;
sql 'alter system archive log current';
backup filesperset=4 format='/oradata/orabk/arch_%T_%d_%s_%p' archivelog all delete input;
release channel ch1;
release channel ch2;
}
quit;
##################################################
#########/oraapp/oracle/dba/lev0_bkup.sh##########
##################################################
#!/bin/sh
export ORACLE_HOME=/oraapp/oracle/92
export DBA_HOME=/oraapp/oracle/dba
export ORACLE_SID=RCVCAT
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_DATE_FORMAT='YYYY-MM-DD_HH24:MI:SS'
$ORACLE_HOME/bin/rman cmdfile $DBA_HOME/lev0_bkup.rcv log $DBA_HOME/log/bkup.log
$ORACLE_HOME/bin/sqlplus /nolog @$DBA_HOME/DBA_rename.sql $DBA_HOME/log/bkup.log
/oraapp/oracle/dba/ora_os.sh &
##################################################
#########/oraapp/oracle/dba/lev0_bkup.rcv#########
##################################################
connect catalog RMAN/RMAN@RCAT;
connect target RMAN/RMAN@PROD;
run {
allocate channel ch1 device type disk;
allocate channel ch2 device type disk;
backup incremental level=0 filesperset=2 tag='Lev0_%d' format='/oradata/orabk/%T_lev0_%d_%s_%p' database include current controlfile;
sql 'alter system archive log current';
backup filesperset=4 format='/oradata/orabk/arch_%T_%d_%s_%p'
archivelog all delete input;
release channel ch1;
release channel ch2;
}
quit;
##################################################
#########/oraapp/oracle/dba/lev1_bkup.sh##########
##################################################
#!/bin/sh
export ORACLE_HOME=/oraapp/oracle/92
export DBA_HOME=/oraapp/oracle/dba
export ORACLE_SID=RCAT
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_DATE_FORMAT='YYYY-MM-DD_HH24:MI:SS'
$ORACLE_HOME/bin/rman cmdfile $DBA_HOME/lev1_bkup.rcv log $DBA_HOME/log/bkup.log
$ORACLE_HOME/bin/sqlplus /nolog @$DBA_HOME/DBA_rename.sql $DBA_HOME/log/bkup.log
/oraapp/oracle/dba/ora_os.sh &
##################################################
#########/oraapp/oracle/dba/lev1_bkup.rcv#########
##################################################
connect catalog RMAN/RMAN@RCAT;
connect target RMAN/RMAN@PROD;
run {
allocate channel ch1 device type disk;
allocate channel ch2 device type disk;
backup incremental
level=1
filesperset=2
tag='Lev1_%d'
format='/oradata/orabk/%T_lev1_%d_%s_%p'
database include current controlfile;
sql 'alter system archive log current';
backup filesperset=4
format='/oradata/orabk/arch_%T_%d_%s_%p'
archivelog all delete input;
release channel ch1;
release channel ch2;
}
quit;
##################################################
#########/oraapp/oracle/dba/lev2_bkup.sh##########
##################################################
#!/bin/sh
export ORACLE_HOME=/oraapp/oracle/92
export DBA_HOME=/oraapp/oracle/dba
export ORACLE_SID=RCVCAT
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_DATE_FORMAT='YYYY-MM-DD_HH24:MI:SS'
$ORACLE_HOME/bin/rman cmdfile $DBA_HOME/lev2_bkup.rcv log $DBA_HOME/log/bkup.log
$ORACLE_HOME/bin/sqlplus /nolog @$DBA_HOME/DBA_rename.sql $DBA_HOME/log/bkup.log
/oraapp/oracle/dba/ora_os.sh &
################################################ ###
########/oraapp/oracle/dba/lev2_bkup.rcv##########
############# #####################################
连接目录 RMAN/RMAN@RCAT;
连接目标 RMAN/RMAN@PROD;
运行 {
分配通道 ch1 设备类型磁盘;
分配通道 ch2 设备类型磁盘;
备份增量
level=2
文件持续= 2
tag='Lev2_%d'
format='/oradata/orabk/%T_lev2_%d_%s_%p'
数据库包含当前控制文件;
sql '更改系统归档日志当前' ;
backup filesperset=4
format='/oradata/orabk/arch_%T_%d_%s_%p'
archivelog 所有删除输入;
释放通道 ch1;
释放通道 ch2 ;
}
退出;

InnoDB使用redologs和undologs确保数据一致性和可靠性。1.redologs记录数据页修改,确保崩溃恢复和事务持久性。2.undologs记录数据原始值,支持事务回滚和MVCC。

EXPLAIN命令的关键指标包括type、key、rows和Extra。1)type反映查询的访问类型,值越高效率越高,如const优于ALL。2)key显示使用的索引,NULL表示无索引。3)rows预估扫描行数,影响查询性能。4)Extra提供额外信息,如Usingfilesort提示需要优化。

Usingtemporary在MySQL查询中表示需要创建临时表,常见于使用DISTINCT、GROUPBY或非索引列的ORDERBY。可以通过优化索引和重写查询避免其出现,提升查询性能。具体来说,Usingtemporary出现在EXPLAIN输出中时,意味着MySQL需要创建临时表来处理查询。这通常发生在以下情况:1)使用DISTINCT或GROUPBY时进行去重或分组;2)ORDERBY包含非索引列时进行排序;3)使用复杂的子查询或联接操作。优化方法包括:1)为ORDERBY和GROUPB

MySQL/InnoDB支持四种事务隔离级别:ReadUncommitted、ReadCommitted、RepeatableRead和Serializable。1.ReadUncommitted允许读取未提交数据,可能导致脏读。2.ReadCommitted避免脏读,但可能发生不可重复读。3.RepeatableRead是默认级别,避免脏读和不可重复读,但可能发生幻读。4.Serializable避免所有并发问题,但降低并发性。选择合适的隔离级别需平衡数据一致性和性能需求。

MySQL适合Web应用和内容管理系统,因其开源、高性能和易用性而受欢迎。1)与PostgreSQL相比,MySQL在简单查询和高并发读操作上表现更好。2)相较Oracle,MySQL因开源和低成本更受中小企业青睐。3)对比MicrosoftSQLServer,MySQL更适合跨平台应用。4)与MongoDB不同,MySQL更适用于结构化数据和事务处理。

MySQL索引基数对查询性能有显着影响:1.高基数索引能更有效地缩小数据范围,提高查询效率;2.低基数索引可能导致全表扫描,降低查询性能;3.在联合索引中,应将高基数列放在前面以优化查询。

MySQL学习路径包括基础知识、核心概念、使用示例和优化技巧。1)了解表、行、列、SQL查询等基础概念。2)学习MySQL的定义、工作原理和优势。3)掌握基本CRUD操作和高级用法,如索引和存储过程。4)熟悉常见错误调试和性能优化建议,如合理使用索引和优化查询。通过这些步骤,你将全面掌握MySQL的使用和优化。

MySQL在现实世界的应用包括基础数据库设计和复杂查询优化。1)基本用法:用于存储和管理用户数据,如插入、查询、更新和删除用户信息。2)高级用法:处理复杂业务逻辑,如电子商务平台的订单和库存管理。3)性能优化:通过合理使用索引、分区表和查询缓存来提升性能。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

记事本++7.3.1
好用且免费的代码编辑器

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

WebStorm Mac版
好用的JavaScript开发工具