Exclusive access could not be obtained because the database is in use
Use Master Alter Database YOURDB SET SINGLE_USER With ROLLBACK IMMEDIATE RESTORE DATABASE YOURDB FROM DISK = 'C:Program FilesMicrosoft SQL ServerMSSQLBACKUPYOURDB.bak'use Master ALTER DATABASE yourdatabasename SET MULTI_USER WITH ROLLBACK IMMEDIATE; [@more@]
select the lock block in MSSQL
/*--调用示例exec p_lockinfo--*/--create proc p_lockinfodeclare@kill_lock_spid bit, --是否杀掉死锁的进程,1 杀掉, 0 仅显示@show_spid_if_nolock bit, --如果没有死锁的进程,是否显示正常进程信息,1 显示,0 不显示--as @count int,@s nvarchar(1000),@i int select @kill_lock_spid=0 select @show_spid_if_nolock=1select id=identity(int,1,1),标志,进程ID=spid,线程ID=kpid,块进程ID=blocked,数据库ID=dbid,数据库名=db_name(dbid),用户ID=uid,用户名=loginame,累计CPU时间=cpu,登陆时间=login_time,打开事务数=open_tran, 进程状
startup and shutdown RAC
===========启动rac的顺序===========1.正常情况下,系统启动时,crs会自动带起来,不需要进行任何操作,如果发现crs没有起来,则可以使用以下命令进行操作# /etc/init.d/init.crs start2. 启动以后检查状态# su - oracle$ crsctl check crs$ crs_stat -t============关闭rac的顺序============1.关闭数据库实例su - oracle$ srvctl stop database -d [db_name]eg:$ srvctl stop database -d zyydb2. 关闭ASM实例 (如果使用ASM,则必须先关闭instance, db,再关闭ASM)$ srvctl stop asm -n [node_name]eg:$ srvctl stop asm -n zyy1$ sr
housekeep arch logs (tested on AIX)
#!/usr/bin/ksh#----------------------------------------------------------------## File Name : housekeeparch.ksh ## Description : This Program will take a snaphot of ## Archive Log files and remove only those ## once the backup is completed ## Version : 1.0 ## Usage : housekeeparch.ksh <sid> <Type> ##
ora-00119, ora-00131
偷懒办法, 注释掉spfile 里指定的lintener修改tnsnames.ora至于具体分析请参考以下http://blog.csdn.net/robinson_0612/article/details/6396989--******************************-- ORA-00119,ORA-00132 错误处理--****************************** 最近系统启动时,收到了ORA-00119以及ORA-00132的错误,该错误实际上跟LISTENER有关,通常的处理办法是将spfile转储为pfile然后从pfile启动并生成新的spfile,不过该操作方式代价太高,需要重新启动数据库。另一种方式则是直接修改tnsnames.ora中的服务名,使之与监听器中的listener名字保
crsctl start crs for RAC on PRD
su - rootcd /oracle/product/10.2.0/crs_1/bin./crsctl start crssrvctl start database -d bepsshutdown beps2startup beps2[@more@]
wmi provider error 0x800742a2 :: MSSQL instance can not start
the issue is appeared afer we install the wintel os VTMand our REG dba found the DB cannot be accessed I login the server find that the MSSQL service si shutdown I try to startup the service with serivce account , but it show error initerrlog: Could not open error log file ''. Operating system error = 3(The system cannot find the path specified.).follow the error message, I check the service account privilege on log file.it have the full control.hence eems the issue is not caused by filesystem
[转载牛人教程和自己的实验结果] 7.手工备份恢复--复制数据库(练习9)
复制数据库成为复本或克隆数据库,数据库的副本名称与原数据库相同,克隆数据库与原数据库名称不同。我们可以运用前面讲过的还原和恢复技术,可以方便复制数据库。通过复制数据库可以为自己以及开发团队带来好处:开发团队拥有一个用于编程和测试的模拟数据库; 可以验证当前数据库备份的质量; 可以练习数据库恢复技能 利用Oracle工具,可以用三种方式复制数据库:可以使用操作系统的文件拷贝进行物理数据库的还原和恢复; 可以用Oracle Export和Oracle Import工具将原数据库逻辑还原到一个新的数据库; 用Oracle的恢复管理其进行数据文件
ORA-12560
造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个: 1.监听服务没有起起来。 windows平台个一如下操作:开始---程序---管理工具---服务,打开服务面板,启动oracle???TNSlistener服务。 2.database instance没有起起来。 windows平台如下操作:开始---程序---管理工具---服务,打开服务面板,启动oracleserviceXXXX,XXXX就是你的SID. 3.注册表问题。 regedit,然后进入HKEY_LOCAL_MACHINESOFTWAREORACLEHOME#将该环境变量ORACLE_SID设置为XXXX,XXXX就是你的SID.或者右键单击我的电脑,属性--高级--环境变量---系统变量--新建,变量名
Stop runnung job
找出正在执行的JOB编号及其会话编号 SELECT SID,JOB FROM DBA_JOBS_RUNNING; 停止该JOB的执行 SELECT SID,SERIAL# FROM V$SESSION WHERE SID='&SID'; ALTER SYSTEM KILL SESSION '&SID,&SERIAL'; EXEC DBMS_JOB.BROKEN(&JOB,TRUE);实例分析:1,查询正在运行的Job,通过查询有两个,和进程占用较多的是两个ORACLE进程符合。SQL> SELECT SID,JOB FROM DBA_JOBS_RUNNING;SID JOB---------- ----------109 42,查询正在运行的job的信息SQL> SELECT SID,SERIAL# FROM V$SESSION WHERE SID='109';SID SERIAL#----------
upgrade to 11g--control file 惊魂记
主要原因是这样的, 不知什么原因, ORACLE 升级的时候居然,同时在10g和11g都跑了ps -ef|grep ora_pmon时看到有两个 pmon进程在跑 然后我升级又照着那个坑爹的catupgra.sql里面说的打了shutdown abort....DOC> The following statement will cause an "ORA-01722: invalid number"DOC> error if the current timezone version file is not the same as theDOC> version in the database to be upgraded. The statement will cause anDOC> ORA-00942 or ORA-00904 error if the pre-upgrade utility (utlu111
[转]alter system switch logfile和alter system archive log current的区别
1、alter system switch logfile 是强制日志切换,不一定就归档当前的重做日志文件(若自动归档打开,就归档前的重做日志,若自动归档没有打开,就不归档当前重做日志。)alter system archive log current 是归档当前的重做日志文件,不管自动归档有没有打都归档。主要的区别在于:ALTER SYSTEM SWITCH LOGFILE对单实例数据库或RAC中的当前实例执行日志切换;而ALTER SYSTEM ARCHIVE LOG CURRENT会对数据库中的所有实例执行日志切换。 为什么执行热备后要执行alter system archive log current 这个语句,看到很多脚本都是这样写的。是不是
how to kill the runing job in ORACLE
SQL> select r.sid,r.job,j.what,r.FAILURES from dba_jobs_running r, dba_jobs j 2 where r.job=j.JOB 3 ; SID JOB WHAT FAILURES---------- ---------- -------------------------------------------------------------------------------- ---------- After get the sid in the reslutSELECT SID,SERIAL# FROM V$SESSION WHERE SID=&sidALTER SYSTEM KILL SESSION '&SID,&SERIAL# ';[@more@]
ORACLE dump ksh
$ more exp_full_db.ksh#!/usr/bin/kshHostName='hostname'LogName='whoami'EnvFlag='echo $LogName|cut -c1-1'OsName='uname'case $OsName in AIX ) echo $OsName ... GET_ACL="aclget" MAIL="mailx" ZIP="/usr/bin/gzip" LogName='/usr/bin/whoami' export LogName ;; HP-UX ) echo $OsName ... GET_ACL="getacl" MAIL="mailx -m" ZIP="/usr/contrib/bin/gzip" Log
for the datagard and real time apply
alter database recover managed standby database using current logfile disconnect;select sequence#, applied from v$archived_log order by sequence#;[@more@]
for rman study
_http://download.oracle.com/docs/cd/B28359_01/backup.111/b28273/rcmsynta013.htm e.g. create catalog db catdb and login to create a user and grant privilege CREATE USER catowner IDENTIFIED BY password DEFAULT TABLESPACE cattbs QUOTA UNLIMITED ON cattbs; GRANT recovery_catalog_owner TO catowner; set ORACLE_SID to backup db to register db for backup RMAN> CONNECT CATALOG catowner@catdb RMAN> CONNECT TARGET / RMAN> REGISTER DATABASE;[@more@]
netbackup RMAN-03009: failure of allocate command on XXXX channel
[Enter Post Title Here]$ more /u01/app/oracle/rman_backup/cmdfile/hot_database_backup_ECDSP.sh.outScript /u01/app/oracle/rman_backup/cmdfile/hot_database_backup_ECDSP.sh==== started on Tue May 17 15:48:52 GMT+08:00 2011 ====RMAN: /u01/app/oracle/product/11.1.0.7/db_1/bin/rmanORACLE_SID: ECDSPORACLE_USER: oracleORACLE_HOME: /u01/app/oracle/product/11.1.0.7/db_1NB_ORA_FULL: NB_ORA_INCR: NB_ORA_CINC: NB_ORA_SERV: NB_ORA_POLICY: Default - Full backup requestedRecovery Manager: Release 11.1.0.7.0 - P
替换用FTP传到Unix上的文件中的^M字符
替换用FTP传到Unix上的文件中的^M字符 记下这个方法只为以后方便自己,这种文章太多了。 用vi打开文件,然后 :%s/^M//g 但要注意下面两个字符不能用键盘上的直接打: ^ : ctrl+v M : ctrl+M[@more@]
查看所有VIEW/TABLE in MSSQL
显示某个Sql Server某个数据库中所有表或视图的信息 sql server 2000 与 2005 不同 差别在于 红色字部分以下语句为获取所有表信息,替换绿色黑体字"U"为"V"为获取所有视图信息。Sql Server 2000 版本SELECT Sysobjects.name AS TABLE_NAME, syscolumns.Id, syscolumns.name AS COLUMN_NAME,systypes.name AS DATA_TYPE, syscolumns.length as CHARACTER_MAXIMUM_LENGTH, sysproperties.[value] AS COLUMN_DESCRIPTION, syscomments.text asCOLUMN_DEFAULT,syscolumns.isnullable as IS_NULLABLE FROM syscolumnsINNER
查使用表空间的session
要del temp表空间报错, 用这几个来查看谁在用temp 试了下,最后两个有效, 第一个script有问题Select sql_text from v$sql_text where sql_id in(select sql_id from v$temp v$tempseg_usage)select * from v$tempseg_usage select * from v$sort_usage [@more@]