数据库服务器掉电 是有 多悲惨 呢,真是不掉不知道,一掉哭不回呀。数据库服务器掉电是有多高的损坏率呢,据说是看 当是时候 那个 数据库的状态,i/o
操作什么的,就是不可预知的率,看人品靠运气。如果数据库正在i/o什么的,oracle有自己的内存神马的数据突然丢失,造成数据块损坏啥的正是太正常了,
可怜俺又是这样的悲剧了重装修复。数据安全是有多重要,客户对数据安全是有多不重视呢。不是硬盘损伤就是经常掉电,我的个神呀。
我该拿他们怎么办呢。
----------------------------------------------------
现象:数据库#startup mount
报错:ORA-00600: internal error code, arguments: [kccpb_sanity_check_2], [192126], [192113], [0x000000000], [], [], [], []
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
数据库掉电 文件损坏 有多少能够恢复的呢?网络上各种神贴,神一般的案例和处理方法。在此收录连接,待未来实践用。
1 oracle数据库掉电损坏的一些处理经验http://wenku.baidu.com/view/f19ea88b680203d8ce2f247e.html
2 案例解决:一次oracle掉电的处理过程 http://www.ixdba.net/article/22/497.html
---------------------------------------------------------------------------------------------------------------------------------------------------------------
由于是工作日,受时间影响 采取数据库最快的恢复途径,由于oracle 比较稳定 只是实例损坏,
而数据已有备份,因此采取删除实例重建数据库的方式。
1 调出dbca 删除实例 ,删除数据文件。
2 重建实例,重建表空间,调整表空间,重建用户。
3 导入数据,恢复应用。
4 服务器数据库参数的调整,数据备份控制文件备份。
----------------------------------------------------------------------------------
问题1 :#xhost + 无法识别的命令
答:#vncserver #export DISPLSY=xd2009:1 (根据vncserver启动的信息 里边有SID:1)
#xhost + #su - oracle $export DISPLSY=你本机的ip:0.0 $dbca 成功。
一般情况下 只要2步
[oracle@localhost database]# xhost +
[oracle@localhost database]$ export DISPLAY=localhostip:0.0 (本地安装
问题2:plsql连接乱码
该如何确定编码呢
select * from nls_session_parameters
问题3 :删除已连接的数据库用户
select saddr,sid,serial#,paddr,username,status from v$session where username='gxjxgl';
alter system kill session'1020,998';
drop user XGXT cascade;
-------------------------------------------------------------------------------------------------------------------------------------------------------
附建表语句
-----增加用户表空间容量-------------------
select tablespace_name 表空间名,ct 字节数,fr 剩余空间,bfb 使用百分比 from (select a.tablespace_name ,a.ct ,b.fr ,replace(to_char((a.ct-b.fr)/a.ct*100,9990.99),' ') bfb from (select tablespace_name, sum(bytes)/1024/1024 as ct from dba_data_files group by tablespace_name) a,(select tablespace_name,sum(bytes)/1024/1024 as fr from dba_free_space group by tablespace_name) b where a.tablespace_name=b.tablespace_name
union all
select tablespace_name,sum(bytes_used),sum(bytes_free),replace(to_char(sum(bytes_used)/sum(bytes_used+bytes_free)*100,9990.99),' ') from V$TEMP_SPACE_HEADER group by tablespace_name )
---查询表空间使用率
select tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0) total_space
from dba_data_files
order by tablespace_name;
----查询表空间使用路径
1、为这个表空间增加一个数据文件
alter tablespace temp add datafile '/u1/oradata/userdata_002.ora' size 50m; --Unix中
alter tablespace system add datafile 'G:\ORACLENEW\PRODUCT\10.2.0\ORADATA\ZFXFZB\SYSTEM03.DBF' size 50m; --Windows NT中
alter tablespace sysaux add datafile 'G:\ORACLENEW\PRODUCT\10.2.0\ORADATA\ZFXFZB\SYSAUX02.DBF' size 100m;
alter tablespace users add datafile 'G:\ORACLENEW\PRODUCT\10.2.0\ORADATA\ZFXFZB\USERS02.DBF' size 100m;
---增加表空间文件
select name from v$tempfile;
select username,temporary_tablespace from dba_users;
----查看临时表空间的路径
2、重新调整数据文件的大小
SQL> alter database datafile '/u1/oradata/userdata_001.ora' resize 50M; --Unix中
SQL> alter database datafile 'G:\ORACLENEW\PRODUCT\10.2.0\ORADATA\ZFXFZB\TEMP01.DBF' resize 2000M; --Windows NT中
1.创建中转临时表空间
create temporary tablespace TEMP1 TEMPFILE 'G:\ORACLENEW\PRODUCT\10.2.0\ORADATA\ZFXFZB\TEMP02.DBF' SIZE 512M REUSE AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED;
2.改变缺省临时表空间 为刚刚创建的新临时表空间temp1
alter database default temporary tablespace temp1;
3.删除原来临时表空间
drop tablespace temp including contents and datafiles;
4.重新创建临时表空间
create temporary tablespace TEMP TEMPFILE 'G:\ORACLENEW\PRODUCT\10.2.0\ORADATA\ZFXFZB\TEMP01.DBF' SIZE 512M REUSE AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED;
5.重置缺省临时表空间为新建的temp表空间
alter database default temporary tablespace temp;
6.删除中转用临时表空间
drop tablespace temp1 including contents and datafiles;
7.如果有必要,那么重新指定用户表空间为重建的临时表空间
alter user arbor temporary tablespace temp;
----------------------------------------------------------------
CREATE SMALLFILE
TABLESPACE "ZF"
LOGGING
DATAFILE 'D:\oracle\product\10.2.0\oradata\orcl\ZF01.dbf' SIZE 2000M, 'D:\oracle\product\10.2.0\oradata\orcl\ZF02.dbf' SIZE 2000M AUTOEXTEND
ON NEXT 500M MAXSIZE 20000M EXTENT MANAGEMENT LOCAL SEGMENT
SPACE MANAGEMENT AUTO
-- Create the user
create user ZFXFZB
identified by ""
default tablespace ZF
temporary tablespace TEMP
profile DEFAULT
quota unlimited on zf;
-- Grant/Revoke role privileges
grant connect to ZFXFZB;
grant dba to ZFXFZB;
-- Grant/Revoke system privileges
grant unlimited tablespace to ZFXFZB;
-----权限管理
GRANT "CONNECT" TO "ZFXFZB";
GRANT "DBA" TO "ZFXFZB";
REVOKE UNLIMITED TABLESPACE FROM "ZFXFZB";
GRANT SELECT ANY TABLE TO ZFXFZB;
GRANT SELECT ANY SEQUENCE TO ZFXFZB;
GRANT SELECT ANY DICTIONARY TO ZFXFZB;
GRANT CREATE PUBLIC DATABASE LINK TO "ZFXFZB";
GRANT DROP PUBLIC DATABASE LINK TO "ZFXFZB";