Oracle DG管理模式和只读模式相互切换
将standby数据库开启至只读模式(用于primary非常忙时,可以在standby跑一些报表) $sqlplus “/as sysdba” SQL>startup mount SQL>alter database open read only;[@more@]将只读模式standby数据库切换至管理模式$sqlplus “/as sysdba”SQL>alter database recover managed standby database disconnect from session; 将管理模式的standby数据库切换至只读模式$sqlplus “/as sysdba”SQL>alter database recover managed standby database cancel;SQL>alter
Oracle DG主备启动关闭顺序
开启DG,首先开启standby数据库,然后再开启primary数据库。使用oracle用户登陆standby数据库主机,将备机开启到管理模式$sqlplus “/as sysdba”SQL>startup mountSQL>alter database recover managed standby database disconnect from session;使用oracle用户登陆primary数据库主机将数据库开启$sqlplus “/as sysdba”SQL>startup[@more@] 关闭DG,首先关闭primary数据库,然后关闭standby数据库使用oracle用户登陆primary数据库主机将数据库关闭$sqlplus “/as sysdba”SQL>shutdown immediate使用oracle用户登陆standby
Oracle安装怪错误原因来自哪儿?
当我们具备一定Linux/Unix和Oracle基础知识后,觉得一开始的那个神秘的Oracle安装,实际上也没有什么。最近我在32位Linux AS 4.7上的案例确实让给了另一种体会。在安装过程中,首先发现了一堆rpm包没有被打上。虽然花半天时间找出来,但是其中gcc开头的两个包死活打不上,提示依赖那个或这个。忽略这个安装的结果就是软件安装到84%至86%时出现错误...[@more@]如果前期基础工作没有做好,那哪怕最简单的安装,会出现莫名奇妙的错误,这个尤其是RAC的安装中尤为凸显。容这一点我感觉有必要对oracle每个版本及相应RPM等必要做好备份刻录的重要
treedump中定位块儿转储所需的文件和块儿号
首先为测试建立序列、表和索引:SQL>create sequence seq1;序列已创建。SQL>create table test as2 select seq1.nextval seq,object_id,object_name from dba_objects3 where rownumcreate index idx_test on test(seq) pctfree 0;索引已创建。SQL>select object_id,object_name from user_objects2 where object_name like 'IDX_%';OBJECT_ID OBJECT_NAME---------- ----------52403 IDX_TESTSQL>alter session set events 'immediate trace name treedump level 52403';会话已更改。SQL>[@mor
sys密码修改导致的RMAN-00571错误
今天发现存储增长情况不太正常,查一下rman备份日志发现报错如下:RMAN> sql statement: ALTER SESSION SET NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"RMAN> RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-00558: error encountered while parsing input commandsRMAN-01009: syntax error: found "identifier": expecting o
该博客原创博文的索引
如果只做记录而不进行一定分类、目录等,则时间长了Blog中的文章也有可能变得“一团糟”。虽然文章可以搜索,但是针对本Blog文章不熟悉的人宁愿百度或谷歌,也不一定在这儿进行搜索文章。 至于以上原因,为了自己和读者阅读方便,决定给该Blog中的所有文章做个文章索引 (Article index),我认为索引不仅DB所需而且Blog也是...
RAC和Dataguard环境下修改sys用户密码
在Oracle9i/10g的(11g还没有测试过) Data guard环境下,通过alter user sys identified by xxx 修改sys用户密码时,不会自动更新备库的密码文件。Oracle Dataguard环境的日志传输安全机制依靠Oracle生产库的密码文件,因此在具有Dataguard环境的灾备系统中,修改sys用户密码需要两种方式:一、主库用alter user命令,备库用主库传过来的密码文件;1、在主库通过alter user sys identified by sys_new_password后将主库的密码文件拷贝到备库相应目录,关闭备库并覆盖备库密码文件后启动备库。操作步骤如下: 在主库执行:SQL> alter sy
Oracle10g Data guard会不会自动更新sys用户密码?
通过如下测试证明,在Oracle 10g中修改主库的sys用户密码,不会自动更新到备库的数据库和密码文件上。测试过程如下: 1、在主库$sqlplus / as sysdbaSQL*Plus: Release 10.2.0.5.0 - Production on Fri Aug 12 15:59:14 2011Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit ProductionSQL> select open_mode from v$database; OPEN_MODE----------READ WRITE SQL> create user test identified by test;User created.SQL> select * from v$pwfile_users;USERNAME SYSDB
RAC和Dataguard环境下主备库切换演练模板
如下文章是根据“做之前要想好,做的时候不要再想”的原则基础上总结出来RAC+DataGuard切换模板。因为根据个人经验,在切换过程中如果遇到什么异常,有时紧张得脑子都不转的感觉。因此有必要提前写好自己熟悉一点实施方案。 具体环境如下:数据库版:Oracle 10g,数据库名rac节点1实例名: rac1 IP: 192.168.1.2节点2实例名: rac2 IP: 192.168.1.3灾备中心备库实例名:rac IP:192.168.1.6[@more@]生产库( 主库)切换为备用库序号操作步骤IP用户名服务或进程1DATA GUARD环境是否正常192
Oracle OS 认证, 口令文件
1、os认证oracle安装之后默认情况下是启用了os认证的,这里提到的os认证是指服务器端os认证。os认证的意思把登录数据库的用户和口令校验放在了操作系统一级。如果以安装oracle时的用户登录os,那么此时在登录oracle数据库时不需要任何验证,如:SQL> connect /as sysdba已连接。SQL> connect sys/aaa@dmt as sysdba已连接。SQL> connect sys/bbb as sysdba已连接。SQL> connect aaa/bbb as sysdba已连接。SQL> show userUSER 为 "SYS"SQL>[@more@]不论输入什么用户(哪怕这个用户如aaa在数据库中根本不存在)
关于exp分段导出换行问题及parfile参数
如果数据库备份文件过大,我们可能通过Oracle exp命令进行分段逻辑备份。这样如果分段备份exp语句过长而容易出现语句换行错误,最终导致后面的参数没有输入到Oracle中。也就是说,备份没有按分段方式导出数据。针对这个问题,如果不想把所有的内容都放在一行内,那么可以考虑将用户名密码以外的参数放在parfile中,这个文件可以任意的分行。把备份脚本变成exp system/system parfile=yourparfile即可。具体案例如下:[@more@]原有脚本内容:-bash-3.00$ more expdb_monthly.sh . /export/home/oracle/.bash_profileexp system/onewave own
Crontab 的修改
当Solaris 10中执行 crontab -e 时出现数字,而没有出现VI编辑界面,修改方式如下两种:[@more@]1、进入crontab 配置文件目录 cd /usr/spool/cron/crontabsVi oracle 然后其中添加所有执行的脚本,如下:0 5 * * * /export/home/oracle/expdb.sh 最好重启crontab 的服务:svcadm restart /system/cron 2、先编辑一个文本文件: vi cornt.txt内容如下为0 5 * * * /export/home/oracle/expdb.sh 然后执行: crontab cornt.txt 在查看 crontab -l就有了,推荐重启cron服务 svcadm restart /system/cron
shell中变量$#,$@,$0,$1,$2的含义
下边是一个简单的测试脚本,脚本内容如下:[@more@]1234567891011121314# cat test.sh#!/bin/shecho "num:$#"echo "shname:$0"echo "first :$1"echo "second:$2"echo "arg:$@"echo "all:$*"echo "pid:$$"echo "status:$?"echo "lastname:$_"echo "last_pid:$!"echo "flag:$-"保存退出执行脚本12345678910111213# sh test.sh one two three fournum:4shname:test.shfirst :onesecond:twoarg:one two three fourall:one tw
李阳和他的疯狂英语的创业史和衰落史(转载)
转引自网络 偶然在网上看到的文字。想起曾经和朋友一起在李阳手下工作,一起讨论李阳,讨论疯狂英语的兴衰。在这看到这样一篇总结比较全面的文章,遂转来和大家一起分享,学习。不管你现在从事着什么职业,看一看,都会有用。疯狂英语,一项伟大的开创性事业,被一群无知者给没落了。不论李阳有着怎样的新闻和社会舆论,仍向他的开创与疯狂致敬。[@more@] 1.初识李阳 我和李阳第一次见面属于巧合。我认识的一个广东的老板,正好和李阳关系不错。有一次喝过酒之后,他说高兴了,就吹起他和李阳的关系。为了显摆显摆,他说过两天把
expdp/impdp来解决exp/imp出现的错误并导入指定表空间
ERP系统版本更新原因需要在测试系统上通过IMP/EXP方式进行了备份恢复数据,在imp方式导出是报如下错误:EXP-00091: Exporting questionable statistics.EXP-00091: Exporting questionable statistics.EXP-00091: Exporting questionable statistics.导入时发现如下错误提示:Column 17 Column 18 Column 19 Column 20 CanEmpty{}|CheckLenX{FEditLen}|CheckLenMax{30}Column 21 2Column 22 com.kingdee.eas.base.form.ide.model.property.DefVa...Column 23 IMP-00019: row rejected due to ORACLE error 1IMP-00003: ORACLE error 1 enc
Data Guard 健壮性查询必背汇总
在平时或切换Oracle Dataguard之前我们必须确认现有Dataguard环境健壮性的前提下才能开始下一步的切换操作。但是在正式切换时我们总是有点紧张原因在检查环节就会浪费不少时间。基于这些因素,总结了如下查询语句,也希望养成将这些语句执行在sql*plus环境下而不是PLSQL Developer 的习惯。[@more@]在主库:1、查看归档模式:archive log list;2、查看archive_dest值是否准确:col destination for a16;col dest_name for a20;select dest_name,status,target,schedule,destination FROM V$ARCHIVE_DEST;3、查看archived_log的归档和应用情
blog的激励
前几天将电脑上的部分资料进行稍微整理的基础上,在开启两年以来Itpub博客中发布了几个文章。今天上去发现1522个总浏览数。这个惊喜我根本没有想到过的。我的一个作者朋友曾经建议让我写一些技术方面资料,但是之前总是认为等我达到“高手”级别或等手头的工作忙完好好安心下来写...[@more@] 今天发现的“浏览数”的确改变了我的想法。我曾经学习和从事通信方面的工作,后来转行搞IT(偏重DB),在此过程中确实经历不少值得记录的场景和经验。现在想起来不比之前清楚,开始忘记了,估计再写也写不到当时的那么好了。
Oracle Sql loader 导入数据脚本的编写过程
今天同事打电话说帮他导入数据,通pl sql导入非常慢(几个小时都不行)。因此我采用oracle sql loader进行了导入。1、文本文件有两个字段,因此根据这个生产了表:SQL> create table rep.tmp_znk_yb( 2 znkh varchar2(11), 3 jmmc varchar2(60) 4 ) 5 tablespace rep; Table created[@more@]2、在服务器上编写sql loader的ctl文件:[boss]@db1$more znk.ctl LOAD DATACHARACTERSET ZHS16GBKINFILE '20110727.txt'APPENDINTO TABLE rep.tmp_znk_ybFIELDS TERMINATED BY ','( znkh, jmmc) 如果另个字段用空格(即,中间没
bbed亲身体会,查看block format
今天在www.dbsnake.com 上看到“关于9i以后block format的含义”的文章,在本机上进行了测试。测试过程如下:C:Documents and SettingsAdministrator>sqlplus / as sysdbaSYS@kuqlan10>create table t8k tablespace users as select * from dba_users;表已创建。SYS@kuqlan10>alter system checkpoint; 系统已更改。SYS@kuqlan10>select dbms_rowid.rowid_relative_fno(rowid)||'_'||dbms_rowid.rowid_block_number(rowid) location from t8k where rownum<2;LOCATION---------------------------------------------------
MMNL absent for 2925 secs; Foregrounds taking over
昨天在参加Oracle 研讨会时同事打电话说数据库登陆不上了,赶紧回来登录服务器,执行Sqlplus / as sysdba命令出现等等,系统无法进去,alert log最近日志 中也没异常警告。因不是关键业务,重启了数据库服务器,再启动oracle,数据库恢复正常。 Alert log内容如下所示: Current log# 3 seq# 894 mem# 0: /oradata/pcs/redo03.logFri Jan 28 09:18:52 2011WARNING: inbound connection timed out (ORA-3136)Fri Jan 28 09:33:02 2011WARNING: inbound connection timed out (ORA-3136)Fri Jan 28 09:33:09 2011WARNING: inbound connectio