Untitled Post - 82
windows 2008 r2默认是开启网络防火墙的,因此oracle的服务默认端口1521也是被阻止的。费了好大劲连不上才发现这个问题,可以这样解决,用命令行:C:\Users\Administrator>netsh firewall set portopening TCP 1521 "ORACLE"
,或者图形化设置:服务器管理器->配置->高级安全windows防火墙->入站规则->新建规则来配置TCP 1521端口
。
windows 2008 r2默认是开启网络防火墙的,因此oracle的服务默认端口1521也是被阻止的。费了好大劲连不上才发现这个问题,可以这样解决,用命令行:C:\Users\Administrator>netsh firewall set portopening TCP 1521 "ORACLE"
,或者图形化设置:服务器管理器->配置->高级安全windows防火墙->入站规则->新建规则来配置TCP 1521端口
。
windows 2008 R2上安装oracle 10g 10.2.0.4时会提示”检查操作系统版本:必须是5.0,5.1,5.2 or 6.0。实际为6.1。未通过。”,修改安装目录下的文件install/oraparam.ini,其中Windows=5.0,5.1,5.2,6.0一行最后添加”,6.1”,安装过程中的其他依赖检查错误通过勾选都设置为”用户已验证”即可。
如果不再需要使用rman来管理目标数据库,或者目标数据库已经崩溃,可以从rman恢复目录注销掉目标数据库。这样只会从恢复目录中移除目标数据库备份相关的元数据,物理备份不会被删除。
连接目标数据库
最简单的就是连上目标数据库和恢复目录,然后执行unregister database
[sql]
$ rman target user/passwd@tgt catalog user/passwd@catlog;
RMAN> unregister database;
database name is “orcl” and DBID is 1276927241
Do you really want to unregister the database (enter YES or NO)?
[/sql]
不连接目标数据库
如果目标数据库已经崩溃,无法再连接时,可以通过指定目标数据库的DBID或者直接使用名字来注销数据库。
如果不知道目标数据库的DBID或名字,先通过rman数据库的rc_database视图(rc指recovery catalog)来查询相关信息。谨记rman恢复目录可以同时为多个目标数据库提供服务。
[sql]
$ sqlplus user/passwd@catlog;
SQL> select * from rc_database;
DB_KEY DBINC_KEY DBID NAME RESETLOGS_CHANGE# RESETLOGS_TIME
10161 41305 1276927241 ORCL 1981608693 28-JUL-12
[/sql]
使用DBID
[sql]
$ rman catalog user/passwd@catlog;
RMAN> set dbid=1276927241;
executing command: SET DBID
database name is “ORCL” and DBID is 1276927241
RMAN> unregister database;
database name is “ORCL” and DBID is 1276927241
Do you really want to unregister the database (enter YES or NO)?
[/sql]
直接使用目标数据库名字
[sql]
$ rman catalog user/passwd@catlog;
RMAN> unregister database orcl;
database name is “ORCL” and DBID is 1276927241
Do you really want to unregister the database (enter YES or NO)? YES
database unregistered from the recovery catalog
[/sql]
移除恢复目录
如果rman恢复目录不再使用,可以drop掉:
[sql]
$ rman catalog user/passwd@catlog;
RMAN> drop catalog;
[/sql]
References:
[1]Remove a Database from a RMAN Recovery Catalog
===
[erq]
Active Dataguard
在Oracle 11g之前,物理备库(physical Standby)在应用redo的时候,是不可以打开的,只可以mount。从11g开始,在应用redo的时候,物理备库可以处于read-only模式,这就称为Active Dataguard 。通过Active Dataguard,可以在物理备库进行查询或者导出数据,从而减少对主库的访问和压力。
Active Dataguard适用于一些只读性的应用,比如,有的应用程序只是查询数据,进行一些报表业务,不会产生redo数据,这些应用可以转移到备库上,避免对主库资源的争用。
Oracle Active Dataguard 是Oracle Database Enterprise Edition的一个功能,需要额外付费授权来使用这个功能。
如需启用Active Dataguard, 只需要将备库以 read-only 模式打开,而且执行 ALTER DATABASE RECOVER MANAGED STANDBY DATABASE语句就可以。需要注意的是:主库和备库的COMPATIBLE 参数至少要设置为11.0.0。
Duplicate from active database
11g以前使用rman创建备库需要先进行备份,然后将备份传输到备库或者可以被备库直接访问到,会大量占用额外的存储空间。
11g提供了从运行的主库直接创建备库的功能,这样就不再需要提前rman备份数据库,数据库直接从target拷贝到auxiliary,方便快捷,当然其他的一些设置是省不了的。
References:
[1]Oracle 11g Data Guard 物理备库快速配置指南(上)
[2]Oracle 11g Data Guard 物理备库快速配置指南(下)
[3]Creating a Standby Database with Recovery Manager
===
[erq]
硬件维护的时候有人不小心把生产库的电源断掉了,重新启动盘柜和服务器后,oracle 10g 10.2.0.4 startup时出现错误提示:
[sql]
数据库装载完毕。
ORA-01122: 数据库文件 1 验证失败
ORA-01110: 数据文件 1: ‘E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF’
ORA-01207: 文件比控制文件更新 - 旧的控制文件 (file is more recent than controlfile - old controlfile)
[/sql]
由于时间紧迫,且对此错误不甚熟悉,就先将生产库切到了dataguard物理备库,有时间再研究此问题如何恢复。
References:
[1]ORA-01207: old control file完全解决方案
===
[erq]
查看rman脚本备份日志,发现如下错误:
1 | starting full resync of recovery catalog |
rman恢复目录所在表空间无法扩展
查看表空间利用率
[sql]
SQL> SELECT * FROM dba_tablespace_usage_metrics ORDER BY used_percent DESC;
[/sql]
恢复目录所在表空间利用率已经达到96%
扩大数据文件大小
[sql]
SQL> alter database datafile ‘/u01/oradata/catlogdb/rman01.dbf’ resize 300M;
[/sql]
重新运行rman,问题解决。
===
[erq]
KVM客户机鼠标集成其实很简单,命令行里添加一个参数-usbdevice tablet
就可以了,不过KVM运行带图形界面的客户机感觉还是不如virtualbox用起来更方面。KVM更适合服务器领域。
HTML页面中储存自定义信息的方式能想到的大概有以下几种:
以上几种方法如无特殊要求,建议使用JQuery的缓存系统。
===
[erq]
因为sql语句中用了中文的”月”,而NLS_LANG设置为”AMERICAN_AMERICA.AL32UTF8”,所以oracle提示了错误”ORA-01843 not a valid month”,只需将NLS_LANG设置为”SIMPLIFIED CHINESE_CHINA.AL32UTF8”即可。