Q: 数据库双挂情况处理
A:
启动数据库会生成core文件,首先分析core文件,打出core信息后,查看堆栈,检查代码原因是否是数据库文件被双系统写,导致控制文件写乱,控制文件损坏(一般数据库服务一旦出现被双机接管都会导致控制文件损坏)。分析完对战之后,确认文件损坏的情况
使用数据库自带的工具进行文件校验:
sys_controlfile datadir
sys_redolog -L datadir
sys_datafile -L datadir
注:datadir为数据库数据文件的目录路径
示例:
1) 例:数据库的sys_control 文件出现问题则需要使用sys_resetxlog重新生成控制文件:
sys_resetxlog -f -x 最新检查点的nextxid -e 0 -o最新检查点的nextoid datadir 强制重建
./sys_resetxlog -f -x 312985553 -e 0 -o 487449 /dbdata/data/data
sys_resetxlog -c datadir 创建新的检查点
sys_resetxlog -L datadir 查看检查点是否写入新的控制文件,如果写入,手动启动数据库: