修改dbid后出现一系列问题
修改dbid后出现一系列问题(共2篇)由网友“一棵树”投稿提供,下面是小编收集整理的修改dbid后出现一系列问题,供大家参考借鉴,希望可以帮助到有需要的朋友。
篇1:修改dbid后出现一系列问题
环境:OEL+Oracle11.2.0.3
问题描述:由于做备份恢复测试需要,根据www.2cto.com/database/05/209268.html,更改了测试数据库的dbid,看似事情已然圆满结束,然后事实并非那么简单,更改dbid后出现了一系列的问题,
先是startup database时出现ORA-01589 ,接着resetlogs时又是ORA-01194等等,下面容在下慢慢道来:
更改完dbid后,查询dbid:
SQL> select dbid from v$database;
DBID
----------
1234567890
重新启动数据库,确保修改被确认,遭遇ORA-01589,
ORA-01589 must use resetlogs or nosetlogs option for database open
SQL>alter database open resetlogs;
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/oradata/orcl2/system01.dbf'
SQL> recover database using backup controlfile until cancel;
ORA-01547:warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/oradata/orcl2/system01.dbf'
(这边需要提示一下,由于更改了dbid,之前的备份集无法使用,所以rman无法利用之前的备份集恢复数据文件)
解决方面是尝试修改隐含参数_allow_resetlogs_corruption=true
先是shutdown immediate数据库,创建pfile,修改pfile,重建spfile,
OK!
SQL> create pfile from spfile;
File created.
修改initorcl2.ora,添加隐含参数_allow_resetlogs_corruption=true
通过pfile创建spfile:
SQL> create spfile from pfile;
File created.
启动数据库:
SQL> startup
ORACLE instance started.
Total System Global Area 418484224 bytes
Fixed Size 1336932 bytes
Variable Size 331352476 bytes
Database Buffers 79691776 bytes
Redo Buffers 6103040 bytes
Database mounted.
Database opened.
OK!正常
SQL> select dbid from v$database;
DBID
----------
1234567890
由于更改了dbid导致之前的rman备份集无法使用,重新备份下数据库,包括逻辑备份:
逻辑备份数据库时又遭遇ORA-01187和ORA-01110
About to export the entire database ...
. exporting tablespace definitions
EXP-00008: ORACLE error 1187 encountered
ORA-01187: cannot read from file because it failed verification tests
ORA-01110: data file 202: '/oradata/orcl2/temp02.dbf'
EXP-00000: Export terminated unsuccessfully
检查temp临时表空间:
SQL> select file_name,tablespace_name from dba_temp_files;
篇2:修改月光博客网站中PHP常用正则表达式中出现的错误
作者: 字体:[增加 减小] 类型:转载
这篇文章主要介绍了修改月光博客网站中PHP常用正则表达式中出现的错误,需要的朋友可以参考下
最近研究正则表达式,看到很多朋友需要IP地址的正则表达式,网上找了一下,一开始就找到了月光博客网站模板上的找了半天没有找到完整解决IP地址的正则表达式不要紧,我随便验证了上面一个正则表达式结果不匹配,所以就自己写了一个,与大家分享其中可能会出现很多错误希望大家多多指点,多多包涵。
很多情况下因为新规则的不断出现,就需要增加一些兼容规则。学正则表达式就是学的思路,拿来主义者不好。
1. $reg=‘/[\\x-\\x]+/u‘;//验证是否为中文字符
2. $reg=‘/\\n\\s*\\r/‘;//验证是否为空白行
这里肯定会有很多人不知道空白行是什么意思我这里就操作一下,如下
代码如下:
$str=“”;
$reg=‘/\\n\\s*\\r/‘;
if(preg_match($reg,$str)){
echo“通过空白行验证”;
}else{
echo“没有通过空白行验证”;
}
?>
这样就可以解决一些代码冗余
3. $reg=‘/<[\\/]?\\w+>/is‘;//验证HTML开始和结束标记
4. $reg=‘/^[\\s*]|[\\s*]$/‘;//匹配首尾空白字符的正则表达式(以空白字符开始或者以他结尾)
5. $reg=‘/^0\\d{2,3}-[1-9]\\d{6,7}$/‘;//匹配国内电话地址的正则表达式:
6. $reg=‘/^[1-9][0-9]{4,}$/‘;//匹配腾讯QQ号
7. $reg=‘/^\\d$/‘;//中国大陆邮政编码
8. $reg=‘/^[1-9]\\d$/‘;//中国大陆15位的身份证
$reg=‘/^[1-9]\\d(\\d|x|y)$/‘;//中国大陆18位的身份证包括后面的字母
9. $reg=‘/^(25[0-5]|2[0-4][0-9]|[0-1][0-9]|[1-9][0-9]|[1-9])\\. (25[0-5]|2[0-4][0-9]|[0-1][0-9]|[1-9][0-9]|[1-9]|0)\\.(25[0-5]|2[0-4] [0-9]|[0-1][0-9]|[1-9][0-9]|[1-9]|0)\\.(25[0-5]|2[0-4][0-9]|[0-1][0-9]| [1-9][0-9]|[0-9])$/‘;//验证IP
这里我也解释下如下:
IP分为5类:
A类 1.0.0.0~126.0.0.0
B类 128.0.0.0~191.255.255.255
C类 192.0.0.0~223.255.255.255
D类 224.0.0.0~239.255.255.255
E类 240.0.0.0~255.255.255.255
先解释(25[0-5]|2[0-4][0-9]|[0-1][0-9]|[1-9][0-9]|[1-9])是什么意思,
我们先把IP拆开分为4 节就容易懂些了。第一节,250~255或200~249或100~199或10~99或1~9是不是很清晰,第一节不能为0.后面的就可以以此类推了
10. $reg=‘/^[1-9][0-9]*$/‘;//匹配正整数
11. $reg=‘/^-[1-9][0-9]*$/‘;//匹配负整数
12. $reg=‘/^-?(0|([1-9]\\d*))$/‘;//匹配整数(这里要注意小括号的运用)
13. $reg=‘/^([1-9]\\d*\\.\\d*)|(0\\.\\d*)$/‘;//匹配正浮点数
14. $reg=‘/^(0|([1-9]\\d*[0|2|4|6|8]))$/‘;//匹配偶数
15. $reg=‘/^[A-Za-z0-9]\\w{5,17}@[A-Za-z0-9]([A-Z]|[a-z]|[0-9]|_)+(\\.[A-Za-z]{2,6}){1,2}$/‘;//匹配Email地址的正则表达式:
16. $reg=‘/^[A-Za-z]\\w{5,19}$/‘;//匹配用户名必须以字母开头,由字母、数字、下划线组成,长度为6~20
本文纯属个人观点绝无针对,如有不对之处请谅解请指正
更多关于常用的正则表达式可以到这里看下。