点击(此处)折叠或打开
- ?
- ●
- ?
- ◆
- ※
- ⊙
- ------GBK:
- =E6=B5=B7=E6=BB=A8 (=E5=8F ---> LHR (=E5=8F
- ------3DUTF-8:
- =E6=B5=B7=E6=BB=A8 (=E5=8F ---> =E5=B0=8F=E9=BA=A6=E8=8B=97 (=E5=8F
- ---小麦苗
- 3DUTF-8:=E5=B0=8F=E9=BA=A6=E8=8B=97
- 3DGBK: =D0=A1=C2=F3=C3=E7
- ----- editplus 替换空行: ^[ \t]*\n EDIT -> DELETE->DELETE BLANK LINES
- ----- editplus 替换以#开头的行,多次执行: ^#[^\n]*\n
- windows不支持的文件名:\ / : * ? " < > |
- \ 反斜杠、捺斜杠
- / 正斜杠、撇斜杠
- 制表符 chr(9)
- 换行符 chr(10)
- 回车符 chr(13)
- 1s=1000ms(毫秒)=1000000(微秒)
- -------------------------------常用日期
- 月份 全拼 简拼 示例
- 1 January Jan
- 2 February Feb
- 3 March Mar
- 4 April Apr
- 5 May May
- 6 June Jun
- 7 July Jul
- 8 August Aug
- 9 September Sep
- 10 October Oct Sat Aug 13 10:54:45 2016
- 11 November Nov Tue Nov 29 02:56:59 2016
- 12 December Dec Tue Dec 06 08:51:57 2016
- 星期 全拼 简拼 示例
- 1 Monday Mon Mon Dec 05 01:04:18 2016
- 2 Tuesday Tue Tue Dec 01 16:21:37 2016
- 3 Wednesday Web
- 4 Thursday Thu Thu Dec 01 08:36:03 2016
- 5 Friday Fri Fri Dec 02 16:17:17 2016
- 6 Saturday Sat Sat Dec 10 14:13:34 2016
- 7 Sunday Sun
- ---------------------------BBED
- 1.1 我的编译代码
- ls -l $ORACLE_HOME/rdbms/lib/*sbbd* */
- ls -l $ORACLE_HOME/rdbms/mesg/bbed* */
- chown oracle:dba /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/*sbbd* */
- chown oracle:dba /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/mesg/bbed* */
- --cd $ORACLE_HOME/rdbms/lib
- --make -f ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbed
- --make -f $ORACLE_HOME/rdbms/lib/ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbed
- make -f $ORACLE_HOME/rdbms/lib/ins_rdbms.mk BBED=$ORACLE_HOME/bin/bbed $ORACLE_HOME/bin/bbed
- 1.2 我的使用代码
- vi /home/oracle/file.txt
- set line 9999 pagesize 9999
- col name format a80
- select file#||' '||name||' '||bytes name from v$datafile;
- vi /home/oracle/bbed.par
- blocksize=8192
- listfile=/home/oracle/file.txt
- mode=edit
- bbed parfile=/home/oracle/bbed.par
- bbed PASSWORD=blockedit mode=edit blocksize=8192 listfile=/home/oracle/file.txt
- ---------secureCRT中vi 显示彩色
- [root@rhel6_lhr ~]# vi .bashrc
- alias vi='vim'
- [root@rhel6_lhr ~]# vi /etc/profile
- export TERM=xterm-color
- secureCRT 中删除用 shift+delete 键或 ctrl + backspace 键
- ctrl+? 清理当前行命令
- ---------------------------- root 配置
- -------------- AIX
- chmod +w /etc/profile
- echo "
- umask 022
- export ORACLE_HOME=/u01/app/11.2.0/grid
- export PATH="\$PATH:\$ORACLE_HOME/bin"
- export PS1='[\$LOGNAME@'\`hostname\`:'\$PWD'']# '
- set -o vi
- alias l=\""ls -l\""
- alias ll=\""ls -l\""
- " >> /etc/profile
- . /etc/profile
- echo "
- umask 022
- export ORACLE_HOME=/u01/app/11.2.0/grid
- export PATH="\$PATH:\$ORACLE_HOME/bin"
- export PS1='[\$LOGNAME@'\`hostname\`:'\$PWD'']# '
- set -o vi
- alias l=\""ls -l\""
- alias ll=\""ls -l\""
- " >> ~/.profile
- . ~/.profile
- -------------- Linux
- chmod +w /etc/profile
- echo "
- umask 022
- export ORACLE_HOME=/u01/app/11.2.0/grid
- export PATH="\$PATH:\$ORACLE_HOME/bin"
- export PS1='[\$LOGNAME@'\`hostname\`:'\$PWD'']# '
- export TERM=xterm-color
- set -o vi
- alias l=\""ls -l\""
- alias ll=\""ls -l\""
- " >> /etc/profile
- . /etc/profile
- echo "
- umask 022
- export ORACLE_HOME=/u01/app/11.2.0/grid
- export PATH="\$PATH:\$ORACLE_HOME/bin"
- export PS1='[\$LOGNAME@'\`hostname\`:'\$PWD'']# '
- set -o vi
- alias l=\""ls -l\""
- alias ll=\""ls -l\""
- " >> ~/.bash_profile
- . ~/.bash_profile
- --export PS1="[\u@\h \W]\$ "
- --export PS1='[$LOGNAME@'`hostname`:'$PWD'']# '
- echo "export PS1='[\$LOGNAME@'\`hostname\`:'\$PWD'']# '" > /etc/profile
- export PS1='[$LOGNAME@'`hostname`:'$PWD'']# '
- -------------------------------------------------------------------------------- linux
- export HISTTIMEFORMAT='%F %T '
- export HISTSIZE=100000
- export HISTFILESIZE=100000
- Ctrl+R 搜索命令历史 ,当找到命令后,通常再按回车键就可以执行该命令。如果想对找到的命令进行调整后再执行,则可以按一下左或右方向键。
- ------------------------------------------------------------------------------------------------- cmd 命令
- mstsc 远程桌面
- firewall.cpl 和 wf.msc 防火墙设置
- services.msc 服务
- cmd
- msconfig 开启启动项
- dxdiag Direct11
- ----开启远程桌面
- 1、计算机——右键——属性——远程设置——远程,选中“允许允许任意版本远程桌面的计算机连接”
- 2、关闭防火墙
- netsh firewall set opmode disable
- netsh advfirewall set publicprofile state off
- 3、services.msc 打开服务,然后 找到 Remote Desktop 相关的三个服务,确保状态为“已启动”
- C:\Users\华荣>set /a a=8500*12
- 102000
- C:\Users\华荣>
- 电脑设置豆沙绿: 窗口、活动窗口标题2
- 色度,饱和度,亮度:85 123 205 80 100 200 100 120 200 76 91 205
- RGB:207,232,204
- cmd界面:0,128,128
- 代码背景:141,179,226
- ------- cmd 界面字体和界面背景颜色
- 背景颜色: 0 128 128
- HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe 修改%SystemRoot%_system32_cmd.exe下,若无该项可以修改HKEY_CURRENT_USER\Console下,将DWORD类型的CodePage项修改为十进制值936,将字符串类型的FaceName改为Lucida Console ,若没有该项则可以新建该项
- chcp 437
- cmd 界面按下F7显示历史命令
- ----cmd 下不换行
- host set /p=start...数据库巡检服务概要. <nul
- host set /p=. <nul
- host echo ..end
- ----- 锁屏 windows + L 键
- ----------系统环境变量
- Windows Registry Editor Version 5.00
- [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
- "NLS_DATE_FORMAT" "YYYY-MM-DD HH24:mi:ss"
- "NLS_LANG AMERICAN_CHINA.ZHS16GBK
- "ORACLE10G D:\Program files\app\oracle\product\10.2.0\db_1
- "ORACLE11G D:\Program files\app\oracle\product\11.2.0.1\dbhome_1
- "ORACLE8I D:\Program files\app\oracle\product\ora8i
- "ORACLE9I D:\Program files\app\oracle\product\ora92
- "ORACLE_HOME D:\Program files\app\oracle\product\11.2.0.1\dbhome_1
- "TNS_ADMIN D:\Program files\app\oracle\product\11.2.0.1\dbhome_1\NETWORK\ADMIN
- ----------用户环境变量
- Windows Registry Editor Version 5.00
- [HKEY_CURRENT_USER\Environment]
- "NLS_DATE_FORMAT"="YYYY-MM-DD HH24:MI:SS"
- "NLS_LANG"="AMERICAN_CHINA.ZHS16GBK"
- ---------cmd下设置用户环境变量
- SETX "NLS_DATE_FORMAT" "YYYY-MM-DD HH24:MI:SS"
- SETX "NLS_LANG" "AMERICAN_CHINA.ZHS16GBK"
- SETX "ORACLE_HOME" "D:\Program files\app\oracle\product\11.2.0.1\dbhome_1"
- SETX "TNS_ADMIN" "D:\Program files\app\oracle\product\11.2.0.1\dbhome_1\NETWORK\ADMIN"
- SETX "PATH" "%ORACLE_HOME%\bin"
- SETX "VBOX_MSI_INSTALL_PATH" "D:\Program Files\Oracle\VirtualBox"
- SETX "ORACLE_HOME" "%cd%\oracle\product\11.2.0.1\dbhome_1"
- SETX "ORACLE_HOME" "D:\Program files\app\oracle\product\11.2.0.1\dbhome_1"
- SETX "TNS_ADMIN" "%%ORACLE_HOME%%\network\admin"
- SETX "PATH" "%path%;%%ORACLE_HOME%%\bin"
- SETX "NLS_DATE_FORMAT" "YYYY-MM-DD HH24:MI:SS"
- SETX "NLS_LANG" "AMERICAN_CHINA.ZHS16GBK"
- alter session set nls_language='SIMPLIFIED CHINESE';
- alter system set nls_language='AMERICAN' scope=spfile;
- export EDITOR=vi
- export ORACLE_SID=orclasm
- export ORACLE_BASE=/u01/app/oracle
- export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
- export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
- export ORACLE_ALERT=$ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/trace
- export PATH=$ORACLE_HOME/bin:$PATH
- export TNS_ADMIN=$ORACLE_HOME/network/admin
- export ORACLE_PATH=.:$ORACLE_BASE/dba_scripts/sql:$ORACLE_HOME/rdbms/admin
- umask 022
- #export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" SELECT userenv('LANGUAGE') db_NLS_LANG FROM DUAL;
- #export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
- export SQLPATH=$ORACLE_HOME/sqlplus/admin
- export NLS_DATE_FORMAT='YYYY-MM-DD HH24:mi:ss';
- #alias sqlplus='rlwrap sqlplus'
- #alias rman='rlwrap rman'
- #alias asmcmd='rlwrap asmcmd'
- alias alert_log='tail -200f $ORACLE_ALERT/alert_$ORACLE_SID.log'
- alias alert_xml='tail -200f $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/alert/log.xml'
- alias alert_listener='tail -200f $ORACLE_BASE/diag/tnslsnr/rhel6/listener/trace/listener.log'
- ----- 如何启用 Administrator(xp、windows7)
- net user Administrator /active:yes
- 单击“开始→运行”,输入regedit后回车,打开注册表编辑器,依次展开 "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList" 分支
- 将右边的Administrator的值改为1,即可让Administrator账户出现在登录的欢迎屏幕上。(如果没有Administrator的话就创建一个DWORD(32位)值类型,其它上级项目没有的话也依次创建)
- ----- 在PE中修改源系统的注册表
- 启动注册表编辑器,点击HKEY_LOCAL_MACHINE,然后点【文件】-【加载配置单元】,浏览文件,进入 Win7安装的分区 " c:\Windows\System32\config" 里面的SYSTEM、DEFAULT、SOFTWARE都可以选择,选择后让你输入名称,随便输入,如byiu输入后点确定就会在HKEY_LOCAL_MACHINE下面增加那个分支,然后就可以编辑了。
- ---新建administrator
- 点开HKEY_LOCAL_MACHINE,点开SAM,右击SAM,点击权限..在组或用户名称下点选 Administrators,点选完全控制对应的允许复选框,点击确定
- 在注册表编辑器窗口按F5刷新。点开:"HKEY_LOCAL_MAICHINE\SAM\SAM\Domains\Account\Users\Names"
- 导入如下注册表,即Administrator用户:
- Windows Registry Editor Version 5.00
- [HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names\Administrator]
- @=hex(1f4):
- ----------------禁用U盘 启用U盘
- ----- 启用usb大容量存储设备 默认设置为“3”表示手动,“2”是表示自动,“4”是表示停用,一般设置为3
- --禁用
- reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR" /v Start /d 4 /t reg_dword /f
- --启用
- reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR" /v Start /d 3 /t reg_dword /f
- ---------------------- 查看网站是否通
- telnet 192.168.59.130 1158
- ---怎样从DOS/Linux的telnet中退出
- 我们经常要用到telnet来测试FTP端口,但是有一个问题估计大家都会遇到,在telnet进入某个端口后无法退出,没办法,为了继续测试只好关掉这个dos窗口,重新打开一个。 这里教给你一个方法,按住ctrl+]就可以退出到
- Welcome to Microsoft Telnet Client
- Escape Character is 'CTRL+]'
- Microsoft Telnet>
- 然后再输入quit就可以完全退出了。
- unzip /media/linux.x64_11gR2_/linux.x64_11gR2_database_1of2.zip -d /tmp && unzip /media/linux.x64_11gR2_/linux.x64_11gR2_database_2of2.zip -d /tmp > /dev/null 2>&1
- unzip p10404530_112030_Linux-x86-64_1of7.zip -d /tmp && unzip p10404530_112030_Linux-x86-64_2of7.zip -d /tmp && unzip p10404530_112030_Linux-x86-64_3of7.zip -d /tmp > /dev/null 2>&1
- mysql -u root -p
- ----------------------------- 科学计数法
- 12345678901,结果为 1.23E+10,即 1.23 乘以 10 的 10 次幂
- 12300000000
- 4.1E+11
- 410 000 000 000
- ----------------------------------------- crontab
- 每天0点02分 2 0 * * * /home/weblogic/lhr/ods_scripts/new_ods2/main_ods_entity_de_lhr.sh
- 每天凌晨1点3分 3 1 * * * /home/weblogic/bin/crm_address_intf_1.sh
- 每周日18点 0 18 * * 0 /home/weblogic/lhr/ods_scripts/new_ods2/main_weekly.sh
- 每周三18点 0 18 * * 3 /home/weblogic/bin/crm_inf_linkresource_monthly.sh
- --root用户可以查看其它用户的crontab
- crontab -u zhangsan -l
- crontab -u lisi -l
- crontab -u wangwu -l
- nohup sh rman_backup_full.sh 2>&1 &
- MYDATE=`date +'%Y-%m-%d %H:%M:%S'`
- sqlplus lhr/lhr@192.168.128.134:1521/orclasm.lhr.com
- tnsping 192.168.0.123:1521/dev.us.oracle.com
- drop user lhr cascade;
- NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16CGB231280"
- NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
- NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
- NLS_LANG=AMERICAN_AMERICA.UTF8
- alias alert_log='tail -200f $ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID/trace/alert_$ORACLE_SID.log'
- drop tablespace temp including contents and datafiles;
- ALTER TABLESPACE temp DROP TEMPFILE '/u01/app/oracle/oradata/orcl/orclasm/tempfile/temp.264.850260283';
- ALTER TABLESPACE temp ADD TEMPFILE '/u01/app/oracle/oradata/orcl/temp02.dbf' SIZE 20M;
- --表空间大小:
- set pagesize 9999 line 9999
- col TS_Name format a30
- WITH wt1 AS
- (SELECT ts.TABLESPACE_NAME,
- df.all_bytes,
- decode(df.TYPE,
- 'D',
- nvl(fs.FREESIZ, 0),
- 'T',
- df.all_bytes - nvl(fs.FREESIZ, 0)) FREESIZ,
- df.MAXSIZ,
- ts.BLOCK_SIZE,
- ts.LOGGING,
- ts.FORCE_LOGGING,
- ts.CONTENTS,
- ts.EXTENT_MANAGEMENT,
- ts.SEGMENT_SPACE_MANAGEMENT,
- ts.RETENTION,
- ts.DEF_TAB_COMPRESSION,
- df.ts_df_count
- FROM dba_tablespaces ts,
- (SELECT 'D' TYPE,
- TABLESPACE_NAME,
- COUNT(*) ts_df_count,
- SUM(BYTES) all_bytes,
- SUM(decode(MAXBYTES, 0, BYTES, MAXBYTES)) MAXSIZ
- FROM dba_data_files d
- GROUP BY TABLESPACE_NAME
- UNION ALL
- SELECT 'T',
- TABLESPACE_NAME,
- COUNT(*) ts_df_count,
- SUM(BYTES) all_bytes,
- SUM(decode(MAXBYTES, 0, BYTES, MAXBYTES))
- FROM dba_temp_files d
- GROUP BY TABLESPACE_NAME) df,
- (SELECT TABLESPACE_NAME,
- SUM(BYTES) FREESIZ
- FROM dba_free_space
- GROUP BY TABLESPACE_NAME
- UNION ALL
- SELECT tablespace_name,
- SUM(d.BLOCK_SIZE * a.BLOCKS) bytes
- FROM gv$sort_usage a,
- dba_tablespaces d
- WHERE a.tablespace = d.tablespace_name
- GROUP BY tablespace_name) fs
- WHERE ts.TABLESPACE_NAME = df.TABLESPACE_NAME
- AND ts.TABLESPACE_NAME = fs.TABLESPACE_NAME(+))
- SELECT (SELECT A.TS#
- FROM V$TABLESPACE A
- WHERE A.NAME = UPPER(t.TABLESPACE_NAME)) TS#,
- t.TABLESPACE_NAME TS_Name,
- round(t.all_bytes / 1024 / 1024) ts_size_M,
- round(t.freesiz / 1024 / 1024) Free_Size_M,
- round((t.all_bytes - t.FREESIZ) / 1024 / 1024) Used_Size_M,
- round((t.all_bytes - t.FREESIZ) * 100 / t.all_bytes, 3) Used_per,
- round(MAXSIZ / 1024 / 1024/1024, 3) MAX_Size_g,
- round(decode(MAXSIZ, 0, to_number(NULL), (t.all_bytes - FREESIZ)) * 100 /
- MAXSIZ,
- 3) USED_per_MAX,
- round(t.BLOCK_SIZE) BLOCK_SIZE,
- t.LOGGING,
- t.ts_df_count
- FROM wt1 t
- UNION ALL
- SELECT to_number('') TS#,
- 'ALL TS:' TS_Name,
- round(SUM(t.all_bytes) / 1024 / 1024, 3) ts_size_M,
- round(SUM(t.freesiz) / 1024 / 1024) Free_Size_m,
- round(SUM(t.all_bytes - t.FREESIZ) / 1024 / 1024) Used_Size_M,
- round(SUM(t.all_bytes - t.FREESIZ) * 100 / SUM(t.all_bytes), 3) Used_per,
- round(SUM(MAXSIZ) / 1024 / 1024/1024) MAX_Size,
- to_number('') "USED,% of MAX Size",
- to_number('') BLOCK_SIZE,
- '' LOGGING,
- to_number('') ts_df_count
- FROM wt1 t
- order by TS#
- ;
- WITH wt1 AS
- (SELECT df.TABLESPACE_NAME,
- df.all_bytes,
- df.MAXSIZ,
- nvl(fs.FREESIZ, 0) FREESIZ
- FROM (SELECT TABLESPACE_NAME,
- SUM(BYTES) all_bytes,
- SUM(decode(MAXBYTES, 0, BYTES, MAXBYTES)) MAXSIZ
- FROM dba_data_files d
- GROUP BY TABLESPACE_NAME) df,
- (SELECT TABLESPACE_NAME, SUM(BYTES) FREESIZ
- FROM dba_free_space
- GROUP BY TABLESPACE_NAME) fs
- WHERE fs.TABLESPACE_NAME(+) = df.TABLESPACE_NAME)
- SELECT t.TABLESPACE_NAME TS_Name,
- round(t.all_bytes / 1024 / 1024, 2) ts_size_m,
- round(t.freesiz / 1024 / 1024, 2) Free_Size_m,
- round((t.all_bytes - t.FREESIZ) / 1024 / 1024, 2) Used_Size_m,
- round(MAXSIZ / 1024 / 1024 / 1024, 2) MAX_Size_g,
- round((MAXSIZ - (t.all_bytes - t.FREESIZ)) / 1024 / 1024 / 1024, 2) MAX_Size_free_g,
- (t.all_bytes) ts_size,
- (t.freesiz) Free_Size,
- (t.all_bytes - t.FREESIZ) Used_Size,
- (MAXSIZ) MAX_Size,
- ((MAXSIZ - (t.all_bytes - t.FREESIZ))) MAX_Size_free
- FROM wt1 t;
- ------ 数据文件情况
- SELECT d.FILE_ID,
- d.TABLESPACE_NAME,
- (SELECT round(SUM(nb.BYTES) / 1024 / 1024, 2)
- FROM dba_data_files nb
- WHERE nb.TABLESPACE_NAME = d.TABLESPACE_NAME) ts_size_m,
- d.FILE_NAME,
- round(d.BYTES / 1024 / 1024, 2) file_size_m,
- round(d.MAXBYTES / 1024 / 1024 / 1024, 2) file_max_size_G,
- d.AUTOEXTENSIBLE,
- round(d.INCREMENT_BY * 8 * 1024 / 1024 / 1024, 2) INCREMENT_m,
- round(d.BYTES * 100 / decode(d.MAXBYTES, 0, BYTES, d.MAXBYTES), 2) autoextend_ratio,
- (SELECT b.CREATION_TIME
- FROM sys.v_$datafile b
- where b.FILE# = d.FILE_ID) CREATION_TIME,
- d.INCREMENT_BY INCREMENT_BY_block,
- d.BYTES,
- d.blocks,
- d.MAXBYTES,
- d.MAXBLOCKS,
- d.USER_BYTES,
- d.USER_BLOCKS
- FROM dba_data_files d
- UNION ALL
- SELECT d.FILE_ID,
- d.TABLESPACE_NAME,
- (SELECT round(SUM(nb.BYTES) / 1024 / 1024, 2)
- FROM v$tempfile nb
- WHERE nb.name = d.FILE_NAME) ts_size,
- d.FILE_NAME,
- round(d.BYTES / 1024 / 1024, 2) file_size_m,
- round(d.MAXBYTES / 1024 / 1024 / 1024, 2) file_max_size_G,
- d.AUTOEXTENSIBLE,
- round(d.INCREMENT_BY * 8 * 1024 / 1024 / 1024, 2) INCREMENT_m,
- round(d.BYTES * 100 / decode(d.MAXBYTES, 0, BYTES, d.MAXBYTES), 2) autoextend_ratio,
- (SELECT b.CREATION_TIME
- FROM sys.v_$datafile b
- where b.FILE# = d.FILE_ID) CREATION_TIME,
- d.INCREMENT_BY INCREMENT_BY_block,
- d.BYTES,
- d.blocks,
- d.MAXBYTES,
- d.MAXBLOCKS,
- d.USER_BYTES,
- d.USER_BLOCKS
- FROM dba_temp_files d
- ORDER BY TABLESPACE_NAME, file_id;
- -----查看字符集
- select SYS_CONTEXT('USERENV', 'LANGUAGE') from dual;
- select userenv('language') from dual;
- select * from v$nls_parameters;
- ---密码文件 linux区分$ORACLE_SID大小写 sysdba select* from v$pwfile_users;
- --linux:orapw+$ORACLE_SID
- --windows: pwd+$ORACLE_SID.ora
- oradim -NEW -sid orcl9i -INTPWD admin -pfile d:\oracle\ora90\database\initstorm.ora;
- C:\Users\Administrator> orapwd file="E:\oracle\ora8i\DATABASE\PWDortest.ORA" password=lhr
- [oracle@robinson dbs]$ orapwd file=$ORACLE_HOME/dbs/orapworcl password=oracle force=y
- sc delete OracleOraDb11g_home1TNSListener
- sc create OracleOraDb11g_home1TNSListener binpath= "F:\app\oracle\product\BIN\TNSLSNR" start= auto displayname= "OracleOraDb11g_home1TNSListener"
- --11g中密码大小写敏感
- (1) sec_case_sensitive_logon参数可以指定用户的口令是否区分大小写,默认为true,表示区分大小写
- (2) 口令文件中的ignorecase 参数仅仅针对创建时是否区分大小写,简言之,只能针对SYS用户,默认为N,表示不忽略大小写,即区分大小写
- --通过设置EVENTS 28401可以屏蔽密码延迟验证:
- SQL> ALTER SYSTEM SET EVENT = '28401 TRACE NAME CONTEXT FOREVER, LEVEL 1' SCOPE = SPFILE;
- 设置该事件后重启数据库即可。
- ------------------------------------------------ selinux
- 查看SELinux状态:
- 1、/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态
- SELinux status: enabled
- 2、getenforce ##也可以用这个命令检查
- 关闭SELinux:
- 1、临时关闭(不用重启机器):
- setenforce 0 ##设置SELinux 成为permissive模式
- ##setenforce 1 设置SELinux 成为enforcing模式
- 2、修改配置文件需要重启机器:
- 修改/etc/selinux/config 文件
- 将SELINUX=enforcing改为SELINUX=disabled
- 重启机器即可
- ------------------------------------------------------------ linux
- 存储区域网络(Storage Area Network,SAN)
- ----设置密码永不过期:
- chage -M -1 oracle
- chage -l oracle
- lsb_release-a
- cat /etc/issue
- uname -a
- cat /proc/version
- ---linux位数查看
- file /bin/ls
- getconf LONG_BIT
- arch
- ---AIX系统查看
- 显示AIX系统内核是32位还是64位:
- bootinfo -K
- 显示机器硬件是32位还是64位:
- bootinfo -y
- --- SUN:
- $isainfo -bv
- 64表示内核是64位的,32表示内核是32位的
- --- HPUX:
- >getconf KERNEL_BITS
- 64表示内核是64位的,32表示内核是32位的
- HPUX:
- >getconf KERNEL_BITS
- 64表示内核是64位的,32表示内核是32位的
- ------------------ AIX系统用户解锁
- 3.1 AIX用户账户锁定与解锁最佳方法
- 3004-303 There have been too many unsuccessful login attempts; please see
- the system administrator.
- 与之相关的配置参数是/etc/security/login.cfg的以下配置项
- logindisable=7 *7次失败登录后锁定端口
- logininterval=120 *在120秒内7次失败登录才锁定端口
- 1、如果你可以登陆到ROOT账户,比较简单
- 使用chsec命令即可解锁,具体如下:
- # chsec -f /etc/security/lastlog -a unsuccessful_login_count=0 -s username
- 通过重置未成功登陆的次数即可解锁
- 2、如果是通过设置来锁定的用户,可以这样解锁
- #【smitty user】-->【Lock / Unlock a User's Account】
- 或是
- # chsec -f /etc/security/lastlog -a unsuccessful_login_count=0 -s username
- 3、命令解锁
- # chuser account_locked=TRUE username 给用户加锁
- # chuser accout_locked=FALSE username 给用户解锁
- ------------大写G跳到最后一行,o新插入一行
- AIX开启自动补全:
- 方法一:
- set -o vi
- 自动补全 esc \
- 历史命令 esc -
- HJKL
- 左下上右
- A 跳到行末,进入编辑模式
- I 跳到行首,进入编辑模式
- X 键删除光标前一个字符停留在原来的那个字符
- AIX开启自动补全:
- 方法一:
- set -o vi
- 自动补全 esc \
- 历史命令 esc -
- esc j
- esc k
- i a x 编辑
- 光标移动 : h l
- HJKL
- 左下上右
- A 跳到行末,进入编辑模式
- I 跳到行首,进入编辑模式
- X 键删除光标前一个字符停留在原来的那个字符
- 方法二:
- set -o emacs
- 自动补全 按两次esc
- 历史命令 ctrl-n 或 ctrl-p
- more /etc/profile
- more /etc/environment
- export TMOUT=0;
- oslevel -qs
- ---清磁盘头
- dd if=/dev/zero of=/dev/rhdisk5 bs=1024 count=1024
- ##查看PV大小,单位M AIX 查询磁盘大小 硬盘大小
- for HDISK in `lspv | grep -v hdisk0 | awk '{print $1}'`;do
- bootinfo -s $HDISK
- done
- for diskname in `lspv|grep -i none|cut -f "1" -d ' '`
- do
- echo "/dev/r$diskname" `getconf DISK_SIZE /dev/r$diskname`
- done
- ---进程句柄
- lsof -p pid
- ---告警日志位置
- lsof | grep diag
- lsof | grep bdump
- show parameter background_dump_dest
- $ORACLE_BASE/ADMIN/SID/BDUMP/ALERTSID.LOG
- --根据实际情况决定是否加upper函数
- SELECT VALUE || substr(d.VALUE, -6, 1) || 'alert_' || b.INSTANCE_Name ||'.log' alertname
- FROM v$parameter d, v$instance b
- WHERE d.NAME = 'background_dump_dest';
- --1 端口是否占用
- netstat -apn | grep 1521
- netstat -ano|grep 1521
- netstat -lnp|grep 1521
- ----检查包忽略大小写
- rpm -qa | grep -i AAA
- --2 杀死所有进程
- kill -9 `ps -ef|grep orcl| grep -v grep | awk '{print $2}'`
- ps -ef |grep $ORACLE_SID|grep -v grep|awk '{print $2}' | xargs kill -9
- ipcs -m | grep oracle | awk '{print $2}' | xargs ipcrm shm
- --进程总数
- ps -ef|grep orcl| wc -l
- ---统计行数
- wc - lcw a.txt
- - c 统计字节数。
- - l 统计行数。
- - w 统计字数。
- -- 匹配多个进程号
- [root@node1 node1]# ps -ef | grep ' 27373 \| 27182 '
- oracle 27182 1 0 14:50 ? 00:00:00 ora_pz99_jmrac1
- oracle 27373 1 0 14:53 ? 00:00:00 ora_w000_jmrac1
- root 27574 9150 0 14:56 pts/1 00:00:00 grep 27373 \| 27182
- [oracle@orcltest shm]$ ps -ef | egrep '(12545|12543)' |grep -v grep
- oracle 12543 1 0 07:41 ? 00:00:02 ora_pmon_ogg1
- oracle 12545 1 0 07:41 ? 00:00:04 ora_psp0_ogg1
- [oracle@orcltest shm]$
- -- 匹配多个字符串
- [root@node1 node1]# ps -ef | grep -v grep | grep -E "ohasd.bin|crs|ocssd|evmd|oproc"
- root 2372 1 0 09:33 ? 00:00:25 /u01/grid/bin/crsd.bin reboot
- root 5051 1 0 05:36 ? 00:01:02 /u01/grid/bin/ohasd.bin reboot
- grid 5313 1 0 05:37 ? 00:01:45 /u01/grid/bin/ocssd.bin
- grid 5500 1 0 05:37 ? 00:00:13 /u01/grid/bin/evmd.bin
- [root@node1 node1]#
- --3 关闭防火墙
- chkconfig iptables off ---永久
- service iptables stop ---临时
- chkconfig iptables --list
- /etc/init.d/iptables status ----会得到一系列信息,说明防火墙开着。
- /etc/rc.d/init.d/iptables stop ----------关闭防火墙
- setup ----------图形界面
- --将/etc/sysconfig/iptables文件新增一行,表示允许1521端口访问:
- [root@dcsopen2Node sysconfig]# vi /etc/sysconfig/iptables
- # Firewall configuration written by system-config-firewall
- # Manual customization of this file is not recommended.
- *filter
- :INPUT ACCEPT [0:0]
- :FORWARD ACCEPT [0:0]
- :OUTPUT ACCEPT [0:0]
- -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
- -A INPUT -p icmp -j ACCEPT
- -A INPUT -i lo -j ACCEPT
- -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
- -A INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT
- -A INPUT -j REJECT --reject-with icmp-host-prohibited
- -A FORWARD -j REJECT --reject-with icmp-host-prohibited
- COMMIT
- find / -type f -size +10000000c -exec du -sh {} \; 查找大于10M的文件
- find . -name '*.phtml' -type f -mmin -30 查找当前目录下.phtml文件中,最近30分钟内修改过的文件。
- find . -name '*.phtml' -type f -mmin -30 -ls 查找当前目录下.phtml文件中,最近30分钟内修改过的文件,的详细情况。
- find . -type f -mtime -1 查找当前目录下,最近1天内修改过的常规文件
- find . -type f -mtime +1 查找当前目录下,最近1天前(2天内)修改过的常规文件。
- find . -ctime +3 -exec rm -rf {} \; #删除一个目录下几天前的文件和目录
- find / -type f -size +10000000c -exec du -sh {} \; 2>/dev/null #查找大于10M的文件并列出文件大小
- find /home -size +10k #意思是说查找/home目录下大小为10k的文件
- find . -type f -mtime 0
- find . -type f -mtime +1
- find . -name '*.doc' -mtime 0
- find / -name access_log 2>/dev/null
- find . -name '*.doc' 2>/dev/null
- find / -amin -10 # 查找在系统中最后10分钟访问的文件
- find / -atime -2 # 查找在系统中最后48小时访问的文件
- find /tmp -size +10000000c -and -mtime +2
- find /tmp -size +10000000c -or -mtime +2
- find / -empty # 查找在系统中为空的文件或者文件夹
- find / -group cat # 查找在系统中属于 groupcat的文件
- find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件
- find / -mtime -1 #查找在系统中最后24小时里修改过的文件
- find / -nouser #查找在系统中属于作废用户的文件
- find / -user fred #查找在系统中属于FRED这个用户的文件
- find . -type f -mtime 0 -exec ls -lrt {} \; --查看当天修改过的文件
- find . -type f -mtime 0 #最近24小时内修改过的文件
- find . -type f -mtime 1 #前48~24小时内修改过的文件,而不是48小时以内修改过的文件
- ---近3天内修改过的文件
- find . -type f -mtime 0 -o -mtime 1 -o -mtime 2
- find . -type f -mtime 0 -or -mtime 1 -or -mtime 2
- 目录大小: du -h --max-depth=1 . 2>&1
- du -h --max-depth=0 /tmp/database/
- du -sh database/
- find . -ctime +3 -exec rm -rf {} \; 删除一个目录下几天前的文件和目录
- find / -type f -size +10000000c -exec du -sh {} \; 查找大于10M的文件
- du -s /*|sort -rn 查看目录大小
- /**/
- -------- AIX文件夹大小
- du -sg app/11.2.0/grid/* | sort -rn /* */
- du -ag app/11.2.0/grid/* | sort -rn /* */
- du -g /oracle/app/11.2.0/* | sort -rn | more /* */
- 系统启动时间:
- date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M:%S"
- create public database link dblink_ogg1
- connect to lhr identified by lhr
- using '(DESCRIPTION =
- (ADDRESS_LIST =
- (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.59.129)(PORT = 1521))
- )
- (CONNECT_DATA =
- (SERVICE_NAME = ogg1)
- )
- )';
- create public database link DBLINK_OGG1
- connect to LHR identified by lhr
- using 'OGG1';
- ----linux查看文件的详细时间
- ls ctlfile*20150212* --full-time|awk '{print $6,$7,$9}'
- -----------添加磁盘
- fdisk -l
- fdisk /dev/sdf
- ...
- mkfs.ext4 /dev/sdf1
- [root@rhel6_lhr ~]# mkdir /u03
- [root@rhel6_lhr ~]# mount /dev/sdf1 /u03
- [root@rhel6_lhr ~]# vi /etc/fstab
- /dev/sdf1 /u03 ext4 defaults 0 0
- chown oracle:oinstall /u04
- linux 修改主机名,永久生效:
- vim /etc/sysconfig/network
- vim /etc/hosts
- aix 修改主机名:
- 修改主机名暂时生效:
- hostname NEW_HOSTNAME
- 永久生效 smit hostname
- 或者 smit tcpip - futher configureation - hostname -set the hostname
- uname -S hostname
- 或者直接用命令 chdev -l inet0 -a hostname=NEW_HOSTNAME
- ||||||||||||||||||||
- 正确更改IP 地址是用 smit tcpip 进入菜单之后,选择further configuration 再选 Network Interfaces,再选 Network Interface Selection,
- 再选 Change /show characteristic of a network interface来更改 IP,这样/etc/hosts就不会新加入一条记录,只需更改文件中相应的IP就行了。
- -------------------------------------------------------------- 闪回恢复区满
- select * from v$flash_recovery_area_usage;
- ALTER SYSTEM SET db_recovery_file_dest_size='2G';
- --关闭闪回恢复区
- alter system set db_recovery_file_dest='';
- --EXPIRED可以理解为失效的备份集,即物理文件丢失。OBSOLETE可以理解为过期的备份集。
- CROSSCHECK ARCHIVELOG ALL;
- LIST EXPIRED ARCHIVELOG ALL;
- DELETE EXPIRED ARCHIVELOG ALL;
- --错误记录
- v_error := SQLCODE || ',' || SQLERRM || chr(13) ||dbms_utility.format_error_backtrace;
- --DML行数
- v_count :=TO_CHAR(SQL%ROWCOUNT);
- -----------块改变跟踪
- alter system set db_create_file_dest = '/u01/bct/' scope=both sid='*';
- alter database enable block change tracking;
- ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '+FRA';
- ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/mydir/rman_change_track.f' REUSE;
- ALTER DATABASE DISABLE BLOCK CHANGE TRACKING;
- COL STATUS FORMAT A8
- COL FILENAME FORMAT A60
- SELECT STATUS, FILENAME,BYTES FROM V$BLOCK_CHANGE_TRACKING;
- SELECT file#,
- AVG(datafile_blocks),
- AVG(blocks_read),
- AVG(blocks_read / datafile_blocks) * 100 AS PCT_READ_FOR_BACKUP,
- AVG(blocks)
- FROM v$backup_datafile
- WHERE used_change_tracking = 'YES'
- AND incremental_level > 0
- GROUP BY file#;
- -------------------------------------------------------------- 联机重做日志
- ----------清除未归档日志
- ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 2;
- ----------清空损坏的日志文件 成功执行前提:一致性关闭,解决ora-00392错误
- ALTER DATABASE CLEAR LOGFILE GROUP 2;
- ----- 添加 redo
- alter database add logfile group 4 'c:\oracle\oradata\orcl\redo04.log' size 100m;
- alter database add logfile;
- alter database add logfile [group n];
- alter database add logfile member '<dir>' to group [n] /*add logfile member这个方法仅使用未使用OMF的日志文件,对于已经运用了OMF的日志组,无法使用该功能添加日志文件*/
- alter database add logfile thread 1 group 4 ('+DATA','+FRA') size 50M;
- ---rac库可以在同一个实例下添加
- alter database add logfile thread 1 group 7('+DATA_DG/querydb/redo07_1.log','+DATA_DG/querydb/redo07_2.log') size 1024m;
- alter database add logfile thread 2 group 8('+DATA_DG/querydb/redo08_1.log','+DATA_DG/querydb/redo08_2.log') size 1024m;
- --- 删除
- alter database drop logfile group 4;
- alter database drop logfile member '';
- --------重命名redo
- SQL> ho cp /u03/app/oracle/oradata/ora1024g/redo03.log /u03/app/oracle/oradata/ora1024g/redo04.log
- SQL> alter database rename file '/u03/app/oracle/oradata/ora1024g/redo03.log' to '/u03/app/oracle/oradata/ora1024g/redo04.log';
- --------重命名 表空间 重命名表空间
- alter tablespace users rename to users01;
- ----------------- 一个查询慢的sql例子
- select count(1) from dba_objects a
- inner join user_objects b on 1=1
- inner join user_objects c on 1=1
- ;
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------- 构造大表
- select level,level from dual connect by level<=1000;
- -----------外部表
- CREATE DIRECTORY EXT_LOG AS '/tmp';
- DROP TABLE ALERT_LOG_lhr2;
- CREATE TABLE ALERT_LOG_lhr2(
- TEXT VARCHAR2(4000)
- )ORGANIZATION EXTERNAL
- (TYPE ORACLE_LOADER
- DEFAULT DIRECTORY EXT_LOG
- ACCESS PARAMETERS
- (RECORDS DELIMITED BY NEWLINE CHARACTERSET utf8
- nobadfile
- nodiscardfile
- nologfile
- FIELDS TERMINATED BY 0X'0D' LDRTRIM
- REJECT ROWS WITH ALL NULL FIELDS
- )LOCATION('lhr1.txt')
- ) reject limit unlimited ;
- ----------文件格式
- df -hT
- --------------ORA-00845: MEMORY_TARGET not supported on this system
- 办法: 修改/etc/fstab
- tmpfs /dev/shm tmpfs defaults,size=1.5G 0 0
- [root@FWDB ~]# mount -o remount /dev/shm
- 简单来说就是 MEMORY_MAX_TARGET 的设置不能超过 /dev/shm 的大小:
- [oracle@FWDB FWDB]$ df -h | grep shm
- tmpfs 2.0G 0 2.0G 0% /dev/shm
- 马上把它加大:
- [root@FWDB ~]# cat /etc/fstab | grep tmpfs
- tmpfs /dev/shm tmpfs defaults,size=4G 0 0
- 现在可以通过重启使这个配置生效,也可以通过重新挂载来修改其大小:
- [root@FWDB ~]# mount -o remount,size=4G /dev/shm
- [root@FWDB ~]# df -h | grep shm
- tmpfs 4.0G 0 4.0G 0% /dev/shm
- 再次启动数据库,没有报错了。
- 二、修改/dev/shm大小
- 默认的最大一半内存大小在某些场合可能不够用,并且默认的inode数量很低一般都要调高些,这时可以用mount命令来管理它。
- #mount -o size=1500M -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm
- 在2G的机器上,将最大容量调到1.5G,并且inode数量调到1000000,这意味着大致可存入最多一百万个小文件。
- 如果需要永久修改/dev/shm的值,需要修改/etc/fstab
- tmpfs /dev/shm tmpfs defaults,size=1.5G 0 0
- mount -o remount /dev/shm
- umount tmpfs
- mount -t tmpfs shmfs -o size=3000m /dev/shm
- vi /etc/fstab
- ---red hat重启网卡
- service network restart
- /etc/rc.d/init.d/network restart
- ---suse重启网卡
- service network restart
- rcnetwork restart
- /etc/rc.d/init.d/network restart
- ----卸载网卡
- ifconfig eth0 down
- --- 单独重启网卡
- ifdown eth0 && ifup eth0
- ifconfig eth0 down && ifconfig eth0 up
- ----------------------------------------------- 固定IP 配置静态ip地址
- ifconfig eth1 192.168.210.108 broadcast 192.168.210.254 netmask 255.255.255.0
- ifconfig eth1 192.168.59.130 broadcast 192.168.59.1 netmask 255.255.255.0
- ifconfig eth0 192.168.59.130 netmask 255.255.255.0 gw 192.168.129.1
- chkconfig NetworkManager off
- chkconfig network on
- service NetworkManager stop
- service network start
- ---若还有问题,可删掉网卡重新添加
- vi /etc/sysconfig/network-scripts/ifcfg-eth0
- vi /etc/udev/rules.d/70-persistent-net.rules
- DEVICE=eth0
- IPADDR=192.168.59.130
- NETMASK=255.255.255.0
- NETWORK=192.168.59.0
- BROADCAST=192.168.59.255
- GATEWAY=192.168.59.2
- ONBOOT=yes
- USERCTL=no
- BOOTPROTO=static
- #HWADDR=00:0c:29:97:f1:5b
- TYPE=Ethernet
- IPV6INIT=no
- DNS1=202.96.209.5
- DNS2=8.8.8.8
- NAME="System eth0"
- ----------------- 动态ip地址
- DEVICE=eth0
- ONBOOT=yes
- USERCTL=no
- BOOTPROTO=dhcp
- HWADDR=00:0c:29:97:f1:5b
- TYPE=Ethernet
- PEERDNS=yes
- IPV6INIT=no
- [root@rhel6 ~]# export LANG=C
- [root@rhel6 ~]# setup
- [root@rhel6 ~]#
- ------------------------------------------------- 修改主机名
- 永久生效:
- [root@zijuan /]# vim /etc/sysconfig/network
- NETWORKING=yes
- NETWORKING_IPV6=yes
- HOSTNAME=zijuan
- HOSTNAME=zijuan表示主机设置为zijuan.
- 注意:修改主机名后,需要重启系统后生效,或者切换个用户然后切换回来就OK
- 查看/etc/hosts文件中必须包含a fully qualified name for the server
- [root@localhost lhr]# cat /etc/hosts
- 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
- ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
- 192.168.59.140 dg
- [root@localhost lhr]# hostname
- localhost.localdomain
- [root@localhost lhr]# hostname dg
- [root@localhost lhr]# hostname
- dg
- -----归档格式
- alter system set log_archive_format = "log_oradg10g_%d_%t_%s_%r.arc" scope=spfile;
- ---------------------------------------- drop database 删除数据库
- 1、dbca静默删库:dbca -silent -deleteDatabase -sourceDB mydb
- 2、SQL窗口:
- alter database close;
- alter system enable restricted session;
- drop database;
- 3、SQL窗口:
- sql > startup force mount restrict;
- sql > drop database;
- 注意:强烈推荐第一种办法,以上2和3的办法若是rac库需要设置cluster_database为false后才可以执行drop database,命令为:alter system set cluster_database=false sid='*' scope=spfile;
- -------------------------------------- 配置本地yum源
- -----------rhel 6.5
- mkdir -p /media/lhr/cdrom
- mount /dev/sr0 /media/lhr/cdrom/
- #设置开机自动挂载系统镜像文件 vi /etc/fstab 添加以下内容
- /dev/sr0 /media/cdrom iso9660 defaults,ro,loop 0 0
- cd /etc/yum.repos.d/
- cp rhel-media.repo rhel-media.repo.bk
- vi /etc/yum.repos.d/rhel-media.repo
- [rhel-media]
- name=Red Hat Enterprise Linux 6.5
- baseurl=file:///media/cdrom
- enabled=1
- gpgcheck=1
- gpgkey=file:///media/cdrom/RPM-GPG-KEY-redhat-release
- yum install httpd #安装命令
- yum install -y *sz*
- rpm -ivh lrzsz-0.12.20-27.1.el6.x86_64.rpm
- yum -y remove mysql-libs-5.1.71
- yum list | grep mysql
- rpm -e --nodeps mysql-libs.x86_64
- -----------------命令后rpm包被下载到了什么地方
- 每次在执行完yum命令后,系统都会把需要用到的rpm包放在/var/cache/yum/这个目录下,但下载源的不同还是会放在不同源目录下。
- find /var/cache/yum/ -name kmod-oracleasm*
- -------------- rhel5.5
- # mkdir /media/cdrom
- 编辑 /etc/fstab 文件,在文件尾部添加如下内容,以便开机自动挂载光盘:
- [root@localhost ~]# tail -1 /etc/fstab
- /dev/cdrom /media/cdrom iso9660 defaults 0 0
- [root@localhost ~]#
- [root@localhost ~]# mount -a
- mount: block device /dev/sr0 is write-protected, mounting read-only
- [root@localhost ~]#
- 清空并编辑 YUM 源配置文件
- 清空 /etc/yum.repos.d/rhel-debuginfo.repo 文件并新增以下内容:
- [root@localhost ~]# cp /etc/yum.repos.d/rhel-debuginfo.repo /etc/yum.repos.d/rhel-debuginfo.repo.bak
- [root@localhost ~]# cat /etc/yum.repos.d/rhel-debuginfo.repo
- [rhel-debuginfo]
- name=Red Hat Enterprise Linux $releasever - $basearch - Debug
- baseurl=file:///media/cdrom
- enabled=0
- gpgcheck=0
- # vi /etc/yum.repos.d/my.repo
- [Oracle]
- name=OEL-$releasever – Media
- baseurl=file:///mnt/Server
- gpgcheck=0
- enabled=1
- 如果是RHEL或者CentOS,请先将/etc/yum.repos.d下面的文件删除或者移动到别的目录下,RHEL创建方法和OEL一样,CentOS则baseurl=file:///mnt/ 即可,因为CentOS的repodata目录就在光盘根下。
- ------查看资源的属性值:
- [root@rac2 ~]# crsctl stat res ora.cluster_interconnect.haip -p -init | grep ENABLED
- ENABLED=0
- [root@rac2 ~]# crsctl stat res ora.asm -p -init | grep START_DEPENDENCIES
- START_DEPENDENCIES=hard(ora.cssd,ora.ctssd)pullup(ora.cssd,ora.ctssd)weak(ora.drivers.acfs)
- [root@rac2 ~]#
- ---修改资源的属性值
- crsctl modify resource ora.<diskgroup>.dg -attr AUTO_START=always
- ---启动磁盘组
- srvctl start diskgroup -g data -n "rac2"
- ------------- 添加rac数据库到集群
- srvctl add database -d DGPHY -c RAC -o /oracle/app/oracle/product/11.2.0/db -p '+DATA/TESTDGPHY/PARAMETERFILE/spfiledgphy.ora' -r physical_standby -n TESTDG
- srvctl add instance -d DGPHY -i DGPHY1 -n ZFZHLHRDB1
- srvctl add instance -d DGPHY -i DGPHY2 -n ZFZHLHRDB2
- srvctl status database -d DGPHY
- srvctl start database -d TESTDG
- srvctl remove database -d DGPHY
- --添加监听到crs 必须是grid添加
- [ZFZHLHRDB3:grid]:/home/grid>srvctl add listener -l LISTENER_LHRDG -p 1523 -o $ORACLE_HOME
- srvctl config listener -l LISTENER_LHRDG -a
- ① rac添加LISTENER资源的时候需要使用grid用户
- ② srvctl config查看资源的具体配置情况
- ③ srvctl modify可以修改资源的配置
- --添加单实例
- srvctl add database -d LHRDGPRI -c SINGLE -o /oracle/app/oracle/product/11.2.0/db -p '/oracle/app/oracle/product/11.2.0/db/dbs/spfileLHRDGPHY1.ora' -r physical_standby -n LHRDGPRI -x ZFZHLHRDB1 -i LHRDGPRI
- crsctl status resource ora.asm -f
- crsctl modify resource ora.asm -attr "GEN_USR_ORA_INST_NAME@SERVERNAME(zfxdeskdb1)=+ASM1"
- crsctl modify resource ora.asm -attr "GEN_USR_ORA_INST_NAME@SERVERNAME(zfxdeskdb2)=+ASM2"
- srvctl stop asm -f
- -------------- 11g rac 修改归档 alter system set log_archive_dest_1='LOCATION=/arch/DGPHY' scope=spfile sid='*';
- SQL>alter system set log_archive_dest_1='LOCATION=+FRA/GUITAR/ARC1' scope=spfile sid='guitar1';
- Diskgroup altered.
- SQL>alter system set log_archive_dest_1='LOCATION=+FRA/GUITAR/ARC2' scope=spfile sid='guitar2';
- Diskgroup altered.
- 干净关闭数据库然后启动库到mount,在其中一个实例上执行alter database archivelog 然后打开数据库即可。
- [root@node1 ~]# srvctl stop database -d jmrac -o immediate
- [root@node1 ~]# srvctl start database -d jmrac -o mount
- ------------------ mgmtdb
- srvctl stop mgmtdb
- srvctl status mgmtdb
- srvctl config mgmtdb
- srvctl disable mgmtdb
- srvctl disable mgmtlsnr
- srvctl add mgmtdb
- srvctl config mgmtdb
- srvctl disable mgmtdb
- srvctl enable mgmtdb
- srvctl getenv mgmtdb
- srvctl modify mgmtdb
- srvctl relocate mgmtdb
- srvctl remove mgmtdb
- srvctl setenv mgmtdb
- srvctl start mgmtdb
- srvctl status mgmtdb
- srvctl stop mgmtdb
- srvctl unsetenv mgmtdb
- srvctl add mgmtlsnr
- srvctl config mgmtlsnr
- srvctl disable mgmtlsnr
- srvctl enable mgmtlsnr
- srvctl getenv mgmtlsnr
- srvctl modify mgmtlsnr
- srvctl remove mgmtlsnr
- srvctl setenv mgmtlsnr
- srvctl start mgmtlsnr
- srvctl status mgmtlsnr
- srvctl stop mgmtlsnr
- srvctl unsetenv mgmtlsnr
- [grid@raclhr-12cR1-N1 ~]$ export ORACLE_SID=-MGMTDB
- [grid@raclhr-12cR1-N1 ~]$ sqlplus / as sysdba
- Database unique name: _mgmtdb
- Database name: _mgmtdb
- Oracle user: grid
- Database instance: -MGMTDB
- service_names:_mgmtdb
- ------------------------------- export display
- export DISPLAY=192.168.59.1:0.0
- xhost +
- 在linux系统中用Oracle帐号执行DBCA或其他JAVA图形界面程序时,报错:
- Xlib: connection to ":0.0" refused by server
- Xlib: No protocol specified
- Error: Can't open display: :0.0
- 解决办法:用root登陆,在#提示符后输入:
- xhost local:oracle
- -----------------------------iSCSI target
- more /etc/ietd.conf --配置文件
- service iscsi-target start #启动iSCSI target
- cat /proc/net/iet/volume #查看iSCSI-target共享出的硬盘
- cat /proc/net/iet/session #查看客户端(initiator端)登陆到target的情况
- -----------------------------iSCSI initiator
- more /etc/iscsi/initiatorname.iscsi
- more /etc/iscsi/iscsid.conf
- iscsiadm -m discovery -t sendtargets -p 192.168.59.200:3260
- iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.5e423e1e4d90 -p 192.168.59.200:3260 -l
- iscsiadm --mode discovery --type sendtargets --portal 192.168.59.200
- iscsiadm --mode node --targetname iqn.2006-01.com.openfiler:tsn.5e423e1e4d90 –portal 192.168.59.200:3260 --login
- iscsiadm -m session -P 3
- service iscsi start #启动iSCSI initiator
- /etc/init.d/iscsi start
- service iscsi start
- service iscsid start
- chkconfig iscsi on
- chkconfig iscsid on
- chkconfig --level 2345 iscsi on
- chkconfig --list|grep iscsi
- -------------------------- 多路径常用命令
- rpm -qa|grep multipath
- modprobe dm-multipath
- modprobe dm-round-robin
- lsmod |grep multipath
- chkconfig --level 2345 multipathd on
- chkconfig --list|grep multipathd
- chkconfig --list multipathd
- multipath -ll
- ---------------获取wwid
- --在RHEL 6中,可以通过如下方式获取磁盘wwid:
- for i in `cat /proc/partitions | awk {'print $4'} |grep sd`; do echo "### $i: `scsi_id --whitelist /dev/$i`"; done
- -- 在RHEL 5中,可以通过如下方式获取磁盘wwid:
- for i in `cat /proc/partitions | awk {'print $4'} |grep sd`; do echo "### $i: `scsi_id -g -u -s /block/$i`"; done
- -------------------------------------------------------------- ASM
- ---------------------------- oracleasm常用命令
- /usr/sbin/oracleasm configure -i
- /usr/sbin/oracleasm createdisk DISK1 /dev/sdb1
- /etc/init.d/oracleasm scandisks
- /etc/init.d/oracleasm listdisks
- /etc/init.d/oracleasm enable
- /usr/sbin/oracleasm enable
- /usr/sbin/oracleasm restart
- /usr/sbin/oracleasm createdisk DISKNAME devicename
- /usr/sbin/oracleasm deletedisk DISKNAME
- /usr/sbin/oracleasm querydisk {DISKNAME | devicename}
- /usr/sbin/oracleasm listdisks
- /usr/sbin/oracleasm scandisks
- ------ ASM磁盘
- $ORACLE_HOME/bin/kfod disk=asm s=true ds=true c=true
- /grid/stage/ext/bin/kfod disk=asm s=true ds=true c=true
- create diskgroup DATA external redundancy disk '/dev/raw/raw*';
- create diskgroup FRA external redundancy disk '/dev/rhdisk3'; --创建磁盘组FRA
- CREATE DISKGROUP ACFSDG external redundancy DISK '/dev/oracleasm/disks/VOL1' ATTRIBUTE 'compatible.asm' = '11.2','compatible.rdbms' = '11.2','compatible.advm'='11.2';
- create diskgroup OCR exteRnal redundancy disk 'ORCL:OVDISK' attribute 'compatible.asm'='11.2','compatible.rdbms'='11.2';
- ---修改磁盘组的兼容属性
- ALTER DISKGROUP asm_dg SET ATTRIBUTE 'compatible.asm' = '11.1';
- ALTER DISKGROUP asm_dg SET ATTRIBUTE 'compatible.rdbms' = '11.1';
- COLUMN name FORMAT A10
- COLUMN compatibility FORMAT A20
- COLUMN database_compatibility FORMAT A20
- SELECT group_number, name, compatibility, database_compatibility FROM v$asm_diskgroup;
- set line 9999
- set pagesize 9999
- col path format a60
- SELECT a.group_number, disk_number,mount_status, a.name, path FROM v$asm_disk a order by a.disk_number;
- select instance_name,status from v$instance;
- set line 999
- select name,state,free_mb,required_mirror_free_mb,usable_file_mb,a.group_number, disk_number,mount_status, path from v$asm_diskgroup a;
- select a.group_number,name,TYPE,state,TOTAL_MB,free_mb from v$asm_diskgroup a;
- select name,state,free_mb,required_mirror_free_mb,usable_file_mb,a.group_number from v$asm_diskgroup a;
- alter diskgroup DG1 mount;
- ---nomount状态下强制删除磁盘组
- drop diskgroup oradg force including contents;
- alter diskgroup DG1 drop disk DG1_VOL5; --删除磁盘组DG1中的磁盘VOL5
- alter system set asm_diskstring='/dev/asm-disk*','/dev/raw/raw*';
- alter diskgroup DATA add disk '/dev/raw/raw1';
- ------------------------ faking asmdisk asm磁盘
- ---- 添加loop设备个数
- 第一种办法:修改 /etc/modprobe.conf 文件添加参数:options loop max_loop=20 可以通过 modprobe -v loop 命令立即加载该模块,或重启
- 第二种办法(通用):mknod -m 0660 /dev/loopX b 7 X
- raw -qa
- losetup -a
- --mknod -m 0660 /dev/loopX b 7 X
- mknod -m 0660 /dev/loop9 b 7 9
- mkdir /asmdisk
- dd if=/dev/zero of=/asmdisk/disk1 bs=1024k count=2000
- dd if=/dev/zero of=/asmdisk/disk2 bs=1024k count=2000
- dd if=/dev/zero of=/asmdisk/disk3 bs=1024k count=2000
- dd if=/dev/zero of=/asmdisk/disk4 bs=1024k count=2000
- dd if=/dev/zero of=/asmdisk/disk5 bs=1024k count=2000
- /sbin/losetup /dev/loop1 /asmdisk/disk1
- /sbin/losetup /dev/loop2 /asmdisk/disk2
- /sbin/losetup /dev/loop3 /asmdisk/disk3
- /sbin/losetup /dev/loop4 /asmdisk/disk4
- /sbin/losetup /dev/loop5 /asmdisk/disk5
- raw /dev/raw/raw1 /dev/loop1
- raw /dev/raw/raw2 /dev/loop2
- raw /dev/raw/raw3 /dev/loop3
- raw /dev/raw/raw4 /dev/loop4
- raw /dev/raw/raw5 /dev/loop5
- chmod 660 /dev/raw/raw1
- chmod 660 /dev/raw/raw2
- chmod 660 /dev/raw/raw3
- chmod 660 /dev/raw/raw4
- chmod 660 /dev/raw/raw5
- chown oracle:dba /dev/raw/raw1
- chown oracle:dba /dev/raw/raw2
- chown oracle:dba /dev/raw/raw3
- chown oracle:dba /dev/raw/raw4
- chown oracle:dba /dev/raw/raw5
- ------Add the following entries to the file "/etc/rc.local"
- /sbin/losetup /dev/loop1 /asmdisk/disk1
- /sbin/losetup /dev/loop2 /asmdisk/disk2
- /sbin/losetup /dev/loop3 /asmdisk/disk3
- /sbin/losetup /dev/loop4 /asmdisk/disk4
- /sbin/losetup /dev/loop5 /asmdisk/disk5
- raw /dev/raw/raw1 /dev/loop1
- raw /dev/raw/raw2 /dev/loop2
- raw /dev/raw/raw3 /dev/loop3
- raw /dev/raw/raw4 /dev/loop4
- raw /dev/raw/raw5 /dev/loop5
- chmod 660 /dev/raw/raw1
- chmod 660 /dev/raw/raw2
- chmod 660 /dev/raw/raw3
- chmod 660 /dev/raw/raw4
- chmod 660 /dev/raw/raw5
- chown oracle:dba /dev/raw/raw1
- chown oracle:dba /dev/raw/raw2
- chown oracle:dba /dev/raw/raw3
- chown oracle:dba /dev/raw/raw4
- chown oracle:dba /dev/raw/raw5
- ------------------------ Simulating Asm by faking hardware
- -->Faking Hardware
- -->Instaling ASM Lib
- -->Configuring the disks
- -->Install DB & ASM instance
- ---Faking Hardware: root 用户
- mkdir /asmdisk
- dd if=/dev/zero of=/asmdisk/disk1 bs=1024k count=2000
- dd if=/dev/zero of=/asmdisk/disk2 bs=1024k count=2000
- /sbin/losetup /dev/loop1 /asmdisk/disk1
- /sbin/losetup /dev/loop2 /asmdisk/disk2
- raw /dev/raw/raw1 /dev/loop1
- raw /dev/raw/raw2 /dev/loop2
- chmod 660 /dev/raw/raw1
- chmod 660 /dev/raw/raw2
- chown grid:asmadmin /dev/raw/raw1
- chown grid:asmadmin /dev/raw/raw2
- ------Add the following entries to the file "/etc/rc.local"
- echo "/sbin/losetup /dev/loop1 /asmdisk/disk1" >>/etc/rc.local
- echo "/sbin/losetup /dev/loop2 /asmdisk/disk2" >>/etc/rc.local
- --------------------------------- oracle 日志
- oracleasm日志: tail -f /var/log/oracleasm
- oracle agent日志: tail -f /u01/app/11.2.0/grid/log/rhel5/agent/ohasd/oraagent_grid/oraagent_grid.log
- asm 告警日志:alert_log='tail -200f $ORACLE_BASE/diag/asm/+asm/$ORACLE_SID/trace/alert_$ORACLE_SID.log'
- CRS 启动日志: more $ORACLE_HOME/log/$HOSTNAME/crsd/crsd.log
- ------查找:find /u01/app/ -name crsd.log
- crs日志地址:/u01/app/11.2.0/grid/log/rac2/crsd/crsd.log
- oracle 10g 告警日志: /u02/app/oracle/admin/ora10g/bdump
- oracle 11g 告警日志: select value from v$diag_info where name='Default Trace File';
- System Control Statement 系统控制语句 alter system
- ------------------------------------------------------------------------------------------- 恢复到new host
- set pagesize 200 linesize 200
- select 'set newname for datafile ' || a.FILE# || ' to "' || a.NAME || '";'
- from v$datafile a
- union all
- select 'set newname for tempfile ' || a.FILE# || ' to "' || a.NAME || '";'
- from v$tempfile a
- union all
- SELECT 'SQL "ALTER DATABASE RENAME FILE ''''' || a.MEMBER || ''''' to ''''' ||
- a.MEMBER || ''''' ";'
- FROM v$logfile a;
- RUN
- {
- # allocate a channel to the tape device
- # ALLOCATE CHANNEL c1 DEVICE TYPE sbt PARMS '...';
- ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
- # rename the data files and online redo logs
- SET NEWNAME FOR DATAFILE 1 TO '?/oradata/test/system01.dbf';
- SET NEWNAME FOR DATAFILE 2 TO '?/oradata/test/undotbs01.dbf';
- SET NEWNAME FOR DATAFILE 3 TO '?/oradata/test/cwmlite01.dbf';
- SET NEWNAME FOR DATAFILE 4 TO '?/oradata/test/drsys01.dbf';
- SET NEWNAME FOR DATAFILE 5 TO '?/oradata/test/example01.dbf';
- SET NEWNAME FOR DATAFILE 6 TO '?/oradata/test/indx01.dbf';
- SET NEWNAME FOR DATAFILE 7 TO '?/oradata/test/tools01.dbf';
- SET NEWNAME FOR DATAFILE 8 TO '?/oradata/test/users01.dbf';
- SET NEWNAME FOR TEMPFILE 1 TO '?/oradata/test/temp01.dbf';
- SQL "ALTER DATABASE RENAME FILE ''/dev3/oracle/dbs/redo01.log''
- TO ''?/oradata/test/redo01.log'' ";
- SQL "ALTER DATABASE RENAME FILE ''/dev3/oracle/dbs/redo02.log''
- TO ''?/oradata/test/redo02.log'' ";
- # Do a SET UNTIL to prevent recovery of the online logs
- SET UNTIL SCN 123456;
- # restore the database and switch the data file names
- RESTORE DATABASE;
- SWITCH DATAFILE ALL;
- SWITCH TEMPFILE ALL;
- # recover the database
- RECOVER DATABASE;
- }
- ------------------------------------------------- 数据库未挂掉的情况下的恢复
- [root@orcltest ~]# ps -ef|grep ora_lgwr_
- .oracle 32173 1 0 06:31 ? 00:00:00 ora_lgwr_oratest
- root 33247 32901 0 10:19 pts/0 00:00:00 grep ora_lgwr_
- [root@orcltest ~]# cd /proc/32173/fd
- [root@orcltest fd]# ll | grep deleted
- lrwx------ 1 root root 64 May 5 15:10 266 -> /u02/app/oracle/oradata/oratest/temp01.dbf (deleted)
- cp 266 /u02/app/oracle/oradata/oratest/temp01.dbf
- ------------------------------------------------------------------------------------------- asm <=> os
- ----所有文件列表 数据文件
- set line 9999 pagesize 9999
- col FILE_NAME format a60
- select 'datafile' file_type, file#,name FILE_NAME,status,enabled from v$datafile
- union all
- select 'tempfile',file#,name FILE_NAME,status,enabled from v$tempfile
- union all
- select 'logfile',group# file#,member FILE_NAME,status,'' from v$logfile
- union all
- select 'controlfile', to_number('') ,name FILE_NAME,status,'' from v$controlfile
- ;
- set line 9999 pagesize 9999
- col FILE_NAME format a50
- select file#,name FILE_NAME,status,enabled from v$datafile;
- --select file#,name FILE_NAME from v$dbfile;
- col FILE_NAME format a50
- select FILE_NAME,FILE_ID,a.TABLESPACE_NAME, b.status ts_status ,BYTES from dba_data_files a,dba_tablespaces b where a.TABLESPACE_NAME=b.TABLESPACE_NAME;
- -------------------------------------------os--->>asm
- -- answer 1 set newname 好
- run{
- crosscheck backup;
- sql 'alter tablespace testdg offline immediate';
- set newname for datafile 14 to'+DATA';
- restore tablespace testdg;
- switch datafile 14;
- recover tablespace testdg;
- sql 'alter tablespace testdg online';
- }
- -- answer 2 convert 好
- rman下:
- convert datafile '/home/oracle/testdg.dbf' format '+DATA';
- sql 下:
- alter tablespace testdg offline ;
- alter tablespace testdg rename datafile '/home/oracle/testdg.dbf' to '+DATA/orclasm/datafile/testdg.284.868895277';
- recover datafile 14;
- alter tablespace testdg online;
- -- answer 3 dbms_file_transfer
- create directory asmsrc as'+DATA/orclasm/datafile/';
- create directory osdesc as '/home/oracle/';
- alter tablespace testdg offline;
- exec dbms_file_transfer.copy_file('osdesc','testdg.dbf','ASMSRC','testdg.dbf');
- alter database rename file'/home/oracle/testdg.dbf' to '+DATA/orclasm/datafile/testdg.dbf';
- alter tablespace testdg online ;
- -- answer 4 backup as copy
- run{
- shutdown immediate;
- startup mount;
- backup as copy datafile 14 format '+DATA';
- }
- SWITCH TABLESPACE testdg TO COPY;
- alter database open;
- -- answer 5 cp
- alter tablespace testdg offline;
- [root@rhel6_lhr ~]# cp /home/oracle/testdg.dbf /home/grid/testdg.dbf
- [root@rhel6_lhr ~]# chown grid:oinstall /home/grid/testdg.dbf
- [root@rhel6_lhr ~]# su - grid
- ASMCMD> cp /home/grid/testdg.dbf +DATA/orclasm/datafile/testdg.dbf
- copying /home/grid/testdg.dbf -> +DATA/orclasm/datafile/testdg.dbf
- ASMCMD>
- alter database rename file'/home/oracle/testdg.dbf' to '+DATA/orclasm/datafile/testdg.dbf';
- alter tablespace testdg online ;
- ---生成standby controlfile
- rman:backup device type disk format '/arch/standby_new_lhr_%U.ctl' current controlfile for standby;
- sql:alter database create standby controlfile as '/arch/standby_new_lhr_contol.ctl'
- --------------------控制文件转换
- RMAN> catalog controlfilecopy '/home/oracle/rman_back/ctl_orastrac.ctl_bk';
- cataloged control file copy
- control file copy file name=/home/oracle/rman_back/ctl_orastrac.ctl_bk RECID=7 STAMP=881248289
- RMAN> backup as copy controlfilecopy '/home/oracle/rman_back/ctl_orastrac.ctl_bk' format '+DATA';
- Starting backup at 01-JUN-2015 15:11:44
- using channel ORA_DISK_1
- channel ORA_DISK_1: starting datafile copy
- input control file copy name=/home/oracle/rman_back/ctl_orastrac.ctl_bk
- output file name=+DATA/orastrac/controlfile/backup.331.881248305 tag=TAG20150601T111610 RECID=8 STAMP=881248307
- channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07
- Finished backup at 01-JUN-2015 15:11:51
- RMAN-06497: WARNING: control file is not current, control file AUTOBACKUP skipped
- RMAN> restore controlfile to '+DATA' FROM '+DATA/orastrac/controlfile/backup.331.881248305';
- Starting restore at 01-JUN-2015 15:12:49
- using channel ORA_DISK_1
- channel ORA_DISK_1: copied control file copy
- Finished restore at 01-JUN-2015 15:12:50
- ------------------------------------------------ asm --->> os
- -- answer 1 好
- rman下:
- convert datafile '+DATA/orclasm/datafile/testdg.277.868887219' format '/home/oracle/testdg.dbf';
- sql 下:
- alter tablespace testdg offline ;
- alter tablespace testdg rename datafile '+DATA/orclasm/datafile/testdg.277.868887219' to '/home/oracle/testdg.dbf';
- recover datafile 14;
- alter tablespace testdg online;
- -- answer 2 dbms_file_transfer
- create directory asmsrc as'+DATA/orclasm/datafile/';
- create directory osdesc as '/home/oracle/';
- alter tablespace testdg offline;
- exec dbms_file_transfer.copy_file('ASMSRC','testdg.282.868891371','osdesc','testdg.dbf');
- alter database rename file'+DATA/orclasm/datafile/testdg.282.868891371' to '/home/oracle/testdg.dbf';
- alter tablespace testdg online ;
- -- answer 3 mount
- run{
- shutdown immediate;
- startup mount;
- set newname for datafile 14 to '/home/oracle/testdg.dbf';
- restore datafile 14;
- switch datafile 14;
- recover datafile 14;
- alter database open;
- }
- -- answer 4 mount
- run{
- shutdown immediate;
- startup mount;
- backup as copy datafile 14 format '/home/oracle/testdg.dbf';
- }
- switch tablespace testdg to copy;
- alter database open;
- -- answer 5 cp
- alter tablespace testdg offline;
- [root@rhel6_lhr ~]# su - grid
- ASMCMD> cp +DATA/orclasm/datafile/testdg.dbf /home/grid/testdg.dbf
- copying +DATA/orclasm/datafile/testdg.dbf -> /home/grid/testdg.dbf
- ASMCMD>
- [root@rhel6_lhr ~]# cp /home/grid/testdg.dbf /home/oracle/testdg.dbf
- [root@rhel6_lhr ~]# chown oracle:oinstall /home/oracle/testdg.dbf
- [root@rhel6_lhr ~]#
- alter database rename file'+DATA/orclasm/datafile/testdg.dbf' to '/home/oracle/testdg.dbf';
- alter tablespace testdg online ;
- create bigfile tablespace ts_dbm datafile '/home/oracle/ts_dbm01.dbf' size 10m autoextend on next 10M ;
- alter user xxx default tablespace bbb;
- ------ smallfile tablespaces
- 单个数据文件的大小由数据库block_size的尺寸决定,例如:
- block_size =8K 对应单个数据文件最大为 32G
- block_size =16K 对应单个据文件最大为 64G
- block_size =32K 对应单个据文件最大为 128G
- ------Bigfile Tablespaces
- block_size =8K 对应单个数据文件最大为 32T
- block_size =16K 对应单个据文件最大为 64T
- block_size =32K 对应单个据文件最大为 128T
- ----如果删除表空间之前删除了表空间文件,解决办法:
- 如果数据库已经启动,则需要先执行下面这行:
- SQL> shutdown abort
- SQL> startup mount
- SQL> alter database datafile 'filename' offline drop;
- SQL> alter database open;
- SQL> drop tablespace tablespace_name including contents;
- alter database datafile '/u02/oracle/oradata/user01.dbf' offline drop;
- alter tablespace test drop datafile '+DATA/orclasm/datafile/test.274.907173619';
- ------表空间默认类型
- SQL> select PROPERTY_NAME,PROPERTY_VALUE from database_properties where PROPERTY_NAME like '%TBS%';
- SQL> alter database set default bigfile tablespace;
- --改回为缺省值
- SQL> alter database set default smallfile tablespace;
- ---控制文件
- --alter system set control_files='/u01/app/oracle/oradata/control01.ctl', '/u01/app/oracle/oradata/control02.ctl','/u01/app/oracle/oradata/control03.ctl' scope=spfile;
- alter database backup controlfile to trace as '/home/oracle/oracle_bk/coolbak/ctl.sql';
- select * from v$controlfile_record_section;
- --转储控制文件
- alter system set events 'immediate trace name controlf level 12';
- ---文件路径
- SELECT d.value || '/' || lower(rtrim(i.instance, chr(0))) || '_ora_' ||
- p.spid || '.trc' trace_file_name
- FROM (SELECT p.spid
- FROM v$mystat m, v$session s, v$process p
- WHERE m.statistic# = '1'
- AND s.sid = m.sid
- AND p.addr = s.paddr) p,
- (SELECT t.instance
- FROM v$thread t, v$parameter v
- WHERE v.name = 'thread'
- AND (v.value = '0' OR to_char(t.thread#) = v.VALUE)) i,
- (SELECT VALUE FROM v$parameter WHERE NAME = 'user_dump_dest') d;
- oradebug setmypid
- SELECT a.SID,
- b.SERIAL# ,
- c.SPID ospid,
- c.pid orapid
- FROM v$mystat a,
- v$session b ,
- v$process c
- WHERE a.SID = b.SID
- and b.PADDR=c.ADDR
- AND rownum = 1;
- oradebug dump controlf 12;
- 16:09:17 SQL> oradebug setmypid
- 已处理的语句
- 16:09:55 SQL> oradebug tracefile_name
- /u01/app/oracle/diag/rdbms/orclasm/orclasm/trace/orclasm_ora_21437.trc
- oradebug event 1555 trace name errorstack level 3
- 热备:
- alter database backup controlfile to '<dir>'; --热备份控制文件 alter database backup controlfile to '/home/oracle/ora_bk/control.bk';
- alter database backup controlfile to trace as '<dir>' ;--得到建立控制文件的脚本
- RMAN:
- backup current controlfile format '/home/oracle/oracle_bk/orclasm/ctl_%d_%T_%s_%p.bak';
- backup database include current controlfile;
- -- 或者设置RMAN 为自动备份
- RMAN > configure controlfile autobackup on;
- ----默认false 忽略一致性检察 隐含参数 隐藏
- SELECT * FROM gv$parameter a WHERE a.NAME like '\_%' escape '\' ;
- SELECT * FROM gv$parameter a WHERE a.NAME like '=_%' escape '=' ;
- alter system set "_allow_resetlogs_corruption"=true scope=spfile;
- alter system set "_allow_resetlogs_corruption"=false scope=spfile; --默认
- alter system reset "_allow_resetlogs_corruption" scope=spfile sid='*';
- SQL> show parameter _allow_resetlogs_corruption
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- _allow_resetlogs_corruption boolean TRUE
- set pagesize 9999
- set line 9999
- col NAME format a40
- col KSPPDESC format a50
- col KSPPSTVL format a20
- SELECT a.INDX,
- a.KSPPINM NAME,
- a.KSPPDESC,
- b.KSPPSTVL
- FROM x$ksppi a,
- x$ksppcv b
- WHERE a.INDX = b.INDX
- and lower(a.KSPPINM) like lower('%¶meter%');
- alter system set "_allow_resetlogs_corruption"=true scope=spfile;
- recover database using backup controlfile until cancel;
- alter database open resetlogs;
- startup force
- alter database open resetlogs;
- alter system set "_allow_resetlogs_corruption"=false scope=spfile;
- alter system reset "_allow_resetlogs_corruption" scope=spfile sid='*';
- ----------------incarnation
- RMAN> list incarnation of database;
- RMAN> reset database to incarnation 8;
- SELECT * FROM V$DATABASE_INCARNATION;
- alter system set log_archive_dest_1='LOCATION=/home/oracle' scope=spfile;
- ---------- 重建控制文件
- CREATE CONTROLFILE REUSE DATABASE "ORA11G" RESETLOGS DATAFILE '/u01/app/oracle/oradata/orcltest/system01.dbf';
- STARTUP NOMOUNT
- CREATE CONTROLFILE REUSE DATABASE "ORA11G" RESETLOGS ARCHIVELOG
- MAXLOGFILES 16
- MAXLOGMEMBERS 3
- MAXDATAFILES 100
- MAXINSTANCES 8
- MAXLOGHISTORY 292
- LOGFILE
- GROUP 1 '/u02/app/oracle/oradata/orcltest/redo01.log' SIZE 50M BLOCKSIZE 512,
- GROUP 2 '/u02/app/oracle/oradata/orcltest/redo02.log' SIZE 50M BLOCKSIZE 512,
- GROUP 3 '/u02/app/oracle/oradata/orcltest/redo03.log' SIZE 50M BLOCKSIZE 512
- -- STANDBY LOGFILE
- DATAFILE
- '/u02/app/oracle/oradata/orcltest/system01.dbf',
- '/u02/app/oracle/oradata/orcltest/sysaux01.dbf',
- '/u02/app/oracle/oradata/orcltest/undotbs01.dbf',
- '/u02/app/oracle/oradata/orcltest/users01.dbf',
- '/u02/app/oracle/oradata/orcltest/example01.dbf'
- CHARACTER SET ZHS16GBK
- ;
- select THREAD#, SEQUENCE#,FIRST_TIME from v$archived_log d where (( THREAD#=2 and SEQUENCE# between 10050 and 10060) or ( THREAD#=1 and SEQUENCE# between 9720 and 9725)) and d.DELETED!='YES' ORDER BY THREAD#, D.RECID;
- run {
- allocate channel c1 type disk;
- allocate channel c2 type disk;
- startup force mount;
- sql 'alter session set NLS_DATE_FORMAT="YYYY-MM-DD HH24:mi:ss"';
- set until time = "to_date('2016-07-28 21:04:50','YYYY-MM-DD HH24:mi:ss')";
- restore database;
- recover database;
- release channel c1;
- release channel c2;
- }
- catalog start with '/u03/backup/' noprompt;
- --restore Controlfile
- DECLARE
- devtype varchar2(256);
- done boolean;
- BEGIN
- devtype:=sys.dbms_backup_restore.deviceAllocate(type=>'',ident=>'T1');
- sys.dbms_backup_restore.restoreSetDatafile;
- sys.dbms_backup_restore.restoreControlfileTo(cfname=>'/tmp/2015_04_30/control01.ctl');
- sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'/tmp/2015_04_30/o1_mf_annnn_TAG20150430T160239_bn3rdzd7_.bkp', params=>null);
- sys.dbms_backup_restore.deviceDeallocate;
- END;
- /
- --restore datafile
- DECLARE
- devtype varchar2(256);
- done boolean;
- BEGIN
- devtype:=sys.dbms_backup_restore.deviceAllocate (type=>'',ident=>'t1');
- sys.dbms_backup_restore.restoreSetDatafile;
- sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>01,toname=>'/u02/app/oracle/oradata/orcltest/system01.dbf');
- sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>02,toname=>'/u02/app/oracle/oradata/orcltest/sysaux01.dbf');
- sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>03,toname=>'/u02/app/oracle/oradata/orcltest/undotbs01.dbf');
- sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>04,toname=>'/u02/app/oracle/oradata/orcltest/users01.dbf');
- sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>05,toname=>'/u02/app/oracle/oradata/orcltest/example01.dbf');
- sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'/tmp/2015_05_02/o1_mf_nnndf_TAG20150502T112355_bn8jtcsc_.bkp', params=>null);
- sys.dbms_backup_restore.deviceDeallocate;
- END;
- /
- 注意:
- 在multisection backup 的情况下,我们需要考虑所有的backuppiece(也就是所有的section),使用initmsr函数来restore datafile
- DECLARE
- devtype varchar2(256);
- done boolean;
- BEGIN
- devtype := dbms_backup_restore.DeviceAllocate(type=>null, ident=>'d1');
- dbms_backup_restore.RestoreSetDatafile;
- dbms_backup_restore.initmsr(1,'/ud1001/PROD/oradata/system01-test.dbf');
- dbms_backup_restore.RestoreDatafileTo(dfnumber => 1,toname => '/ud1001/PROD/oradata/system01-test.dbf');
- dbms_backup_restore.RestoreBackupPiece(done => done,handle =>'/backup/Oracle-DB-8-7-2014/db_L0_PROD_e6pf7too_1_1.rman', params => null);
- dbms_backup_restore.RestoreBackupPiece(done => done,handle =>'/backup/Oracle-DB-8-7-2014/db_L0_PROD_e6pf7too_2_1.rman', params => null);
- END;
- /
- --restore archived redolog
- DECLARE
- devtype varchar2(256);
- done boolean;
- BEGIN
- devtype := dbms_backup_restore.DeviceAllocate (type => '',ident => 'FUN');
- dbms_backup_restore.RestoreSetArchivedLog(destination=>'D:\ORACLE_BASE\achive\');
- dbms_backup_restore.RestoreArchivedLog(thread=>1,sequence=>1);
- dbms_backup_restore.RestoreArchivedLog(thread=>1,sequence=>2);
- dbms_backup_restore.RestoreArchivedLog(thread=>1,sequence=>3);
- dbms_backup_restore.RestoreBackupPiece(done => done,handle => 'D:\ORACLE_BASE\RMAN_BACKUP\MYDB_LOG_BCK0DH1JGND_1_1', params => null);
- dbms_backup_restore.DeviceDeallocate;
- END;
- /
- --清除控制文件中关于v$archived_log的信息
- SQL> execute sys.dbms_backup_restore.resetCfileSection(11);
- --再次查询v$archived_log,信息已经被清除
- SQL> select dest_id,sequence#,name,blocks from v$archived_log;
- ---------------------------------------------------------------------------------------------------------------- 归档丢失
- SQL> recover database ;
- ORA-00279: change 1549336 generated at 01/15/2015 16:22:07 needed for thread 1
- ORA-00289: suggestion :
- /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_22_865253186.dbf
- ORA-00280: change 1549336 for thread 1 is in sequence #22
- Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
- cancel
- Media recovery cancelled.
- SQL> alter database open;
- alter database open
- *
- ERROR at line 1:
- ORA-01113: file 1 needs media recovery
- ORA-01110: data file 1: '/u01/app/oracle/oradata/utf8test/system01.dbf'
- SQL> alter system set "_allow_resetlogs_corruption"=true scope=spfile;
- System altered.
- SQL> startup force;
- ORACLE instance started.
- Total System Global Area 1102344192 bytes
- Fixed Size 2227584 bytes
- Variable Size 738198144 bytes
- Database Buffers 352321536 bytes
- Redo Buffers 9596928 bytes
- Database mounted.
- ORA-01113: file 1 needs media recovery
- ORA-01110: data file 1: '/u01/app/oracle/oradata/utf8test/system01.dbf'
- ---- recover database using backup controlfile;
- SQL> recover database until cancel;
- ORA-00279: change 1549336 generated at 01/15/2015 16:22:07 needed for thread 1
- ORA-00289: suggestion :
- /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch1_22_865253186.dbf
- ORA-00280: change 1549336 for thread 1 is in sequence #22
- Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
- cancel
- ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
- ORA-01194: file 2 needs more recovery to be consistent
- ORA-01110: data file 2: '/u01/app/oracle/oradata/utf8test/sysaux01.dbf'
- ORA-01112: media recovery not started
- SQL> alter database open resetlogs;
- alter database open resetlogs
- *
- ERROR at line 1:
- ORA-00603: ORACLE server session terminated by fatal error
- ORA-00600: internal error code, arguments: [2662], [0], [1549349], [0],
- [1550178], [12583040], [], [], [], [], [], []
- ORA-00600: internal error code, arguments: [2662], [0], [1549348], [0],
- [1550178], [12583040], [], [], [], [], [], []
- ORA-01092: ORACLE instance terminated. Disconnection forced
- ORA-00600: internal error code, arguments: [2662], [0], [1549346], [0],
- [1550178], [12583040], [], [], [], [], [], []
- Process ID: 7693
- Session ID: 237 Serial number: 5
- 退出,重新登录
- SQL> exit
- Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
- With the Partitioning, OLAP, Data Mining and Real Application Testing options
- [oracle@rhel6_lhr utf8test]$ sqlplus / as sysdba
- SQL*Plus: Release 11.2.0.3.0 Production on Fri Jan 16 10:13:53 2015
- Copyright (c) 1982, 2011, Oracle. All rights reserved.
- Connected to an idle instance.
- SQL> startup
- ORACLE instance started.
- Total System Global Area 1102344192 bytes
- Fixed Size 2227584 bytes
- Variable Size 738198144 bytes
- Database Buffers 352321536 bytes
- Redo Buffers 9596928 bytes
- Database mounted.
- Database opened.
- ----------------------------------------------------------------------------------------------------------------
- select * from v$fixed_view_definition a WHERE a.VIEW_NAME like 'X_$DIAG%' ;
- SELECT * FROM V$FIXED_TABLE A WHERE A.NAME like 'X$DIAG%' ;
- ------- 十进制转十六进制
- select to_char(1985432,'xxxxxxxxxxxxxxx') FROM DUAL;
- ------- 十六进制转十进制
- select to_number('1e4b98','xxxxxxxxxxxxxxx') from dual;
- --------------------------- exp和imp grant exp_full_database to lhr;
- --EXP-00091的方法 select userenv('language') from dual; ---->>> NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
- 或加上: STATISTICS=NONE
- ------ query选项
- exp \'/ AS SYSDBA\' tables=test_query_lhr file=/tmp/test_query_lhr_scott.dmp query=\" where owner=\'SCOTT\' \" log=/tmp/test_query_lhr_scott.log
- [ZFZHLHRDB1:oracle]:/oracle>more /tmp/scottfile.par
- query="where owner='SCOTT'"
- [ZFZHLHRDB1:oracle]:/oracle> exp \'/ AS SYSDBA\' tables=test_query_lhr file=/tmp/test_query_lhr_scott_01.dmp parfile=/tmp/scottfile.par log=/tmp/test_query_lhr_scott_01.log
- ------ parfile选项
- [ZFZHLHRDB1:oracle]:/oracle>more /tmp/scottfile.par
- tables=scott.emp,scott.dept
- exp \'/ AS SYSDBA\' file=/tmp/test_query_lhr_scott_01.dmp parfile=/tmp/scottfile.par log=/tmp/test_query_lhr_scott_01.log
- strace exp n1/n1 tables=scott.emp file=a.dmp
- exp cnydm/cnydm@DATAWDB_125 file=d:/oracle_bk/cnydm20150402.dmp log=d:/oracle_bk/cnydm20150402.log buffer=50000000 tables=PRD_CTGRY_D,DSCNT_TP_D,MKT_AND_PRD_CTGRY_D,MKT_CTGRY_D
- imp cnydm/cnydm@DATAWDB_125 file=d:/oracle_bk/cnydm20150402.dmp log=d:/oracle_bk/imp_cnydm20150402.log buffer=50000000 full=y
- exp system/lhr file=E:\expfull.dmp full=y log=E:\expfull.log
- imp system/lhr file=E:\expfull.dmp full=y log=E:\impfull.log
- exp lhr/lhr@orclasm tables=xb_log_lhr,xb_a,xb_b file=e:\e1.dmp log=E:\exp_table.log buffer=41943040
- imp lhr/lhr@winxp tables=xb_log_lhr file=e:\e1.dmp log=E:\exp_table.log buffer=41943040
- imp lhr/lhr@orclasm tables=(emp,dept) file=d:\e1.dmp log=E:\exp_table_.log buffer=41943040
- exp system/lhr file=E:\expfull2.dmp log=E:\expfull2.log owner=(lhrexp,lhrimp)
- imp system/lhr file=E:\expfull2.dmp full=y log=E:\expfull2.log
- imp "sys as sysdba" file=testmv_full.dmp full=y buffer=41943040 feedback=10000 log=testmv_full.log
- imp user2/pwd fromuser=user1 touser=user2 file=/tmp/imp_db_pipe1 feedback=10000 buffer=41943040 log=testmv_full.log
- 生产环境下,oracle 9I下sga大概8G,pga大概6g,需要导入一个2.7g以上的大表到成产库中,由于是同事着手运用imp工具的默认buffer=30K,用时大概一个小时还没有结果,考虑到pga还是很大的,跟同事商议加上buffer=409600000设置buffer大概400M的,15分钟内imp完成。当然运用impdp然后运用parallel=n效率当然更加理想了!
- -------------------------------------------- 导出ASH视图的数据 ash数据
- --- 方法1:ctas建表导出 有的客户不让建表
- CREATE TABLE ASH_TEMP_20161117 NOLOGGING AS
- SELECT *
- FROM DBA_HIST_ACTIVE_SESS_HISTORY D
- WHERE D.SAMPLE_TIME BETWEEN
- TO_DATE('2016-11-10 02:00:00', 'YYYY-MM-DD HH24:MI:SS') AND
- TO_DATE('2016-11-17 06:00:00', 'YYYY-MM-DD HH24:MI:SS')
- ;
- exp \'/ AS SYSDBA\' tables=ASH_TEMP_20161117 file=/tmp/ASH_TEMP_20161117.dmp log=/tmp/ASH_TEMP_20161117.log buffer=41943040
- imp lhr/lhr tables=ASH_TEMP_20161117 file=/tmp/ASH_TEMP_20161117.dmp log=/tmp/imp_ASH_TEMP_20161117.log buffer=41943040
- --- 方法2:导出基表的数据
- ---more /tmp/exp_ash_lhr_01.par
- query="WHERE SAMPLE_TIME BETWEEN TO_DATE('2016-12-02 08:30:00', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('2016-12-08 23:38:00', 'YYYY-MM-DD HH24:MI:SS')"
- exp \'/ AS SYSDBA\' tables='WRH$_ACTIVE_SESSION_HISTORY' file=/tmp/exp_ash_lhr_01.dmp parfile=/tmp/exp_ash_lhr_01.par log=/tmp/exp_ash_lhr_01.log GRANTS=N CONSTRAINTS=N STATISTICS=NONE
- exp \'/ AS SYSDBA\' tables='WRM$_SNAPSHOT','WRH$_EVENT_NAME','WRH$_SQLCOMMAND_NAME','WRH$_PLAN_OPERATION_NAME','WRH$_PLAN_OPTION_NAME','WRH$_TOPLEVELCALL_NAME' file=/tmp/exp_ash_lhr_02.dmp log=/tmp/exp_ash_lhr_02.log GRANTS=N CONSTRAINTS=N STATISTICS=NONE
- imp lhr/lhr file=/tmp/exp_ash_lhr_01.dmp tables='WRH$_ACTIVE_SESSION_HISTORY' log=/tmp/imp_ash_lhr_01.log FROMUSER=SYS TOUSER=LHR
- imp lhr/lhr file=/tmp/exp_ash_lhr_02.dmp tables='WRM$_SNAPSHOT','WRH$_EVENT_NAME','WRH$_SQLCOMMAND_NAME','WRH$_PLAN_OPERATION_NAME','WRH$_PLAN_OPTION_NAME','WRH$_TOPLEVELCALL_NAME' log=/tmp/imp_ash_lhr_02.log FROMUSER=SYS TOUSER=LHR
- DROP TABLE LHR.WRH$_ACTIVE_SESSION_HISTORY PURGE;
- DROP TABLE LHR.WRM$_SNAPSHOT PURGE;
- DROP TABLE LHR.WRH$_EVENT_NAME PURGE;
- DROP TABLE LHR.WRH$_SQLCOMMAND_NAME PURGE;
- DROP TABLE LHR.WRH$_PLAN_OPERATION_NAME PURGE;
- DROP TABLE LHR.WRH$_PLAN_OPTION_NAME PURGE;
- DROP TABLE LHR.WRH$_TOPLEVELCALL_NAME PURGE;
- create or replace view dh_ash_11g_lhr
- (snap_id, dbid, instance_number, sample_id, sample_time, session_id, session_serial#, session_type, flags, user_id, sql_id, is_sqlid_current, sql_child_number, sql_opcode, sql_opname, force_matching_signature, top_level_sql_id, top_level_sql_opcode, sql_plan_hash_value, sql_plan_line_id, sql_plan_operation, sql_plan_options, sql_exec_id, sql_exec_start, plsql_entry_object_id, plsql_entry_subprogram_id, plsql_object_id, plsql_subprogram_id, qc_instance_id, qc_session_id, qc_session_serial#, px_flags, event, event_id, seq#, p1text, p1, p2text, p2, p3text, p3, wait_class, wait_class_id, wait_time, session_state, time_waited, blocking_session_status, blocking_session, blocking_session_serial#, blocking_inst_id, blocking_hangchain_info, current_obj#, current_file#, current_block#, current_row#, top_level_call#, top_level_call_name, consumer_group_id, xid, remote_instance#, time_model, in_connection_mgmt, in_parse, in_hard_parse, in_sql_execution, in_plsql_execution, in_plsql_rpc, in_plsql_compilation, in_java_execution, in_bind, in_cursor_close, in_sequence_load, capture_overhead, replay_overhead, is_captured, is_replayed, service_hash, program, module, action, client_id, machine, port, ecid, dbreplay_file_id, dbreplay_call_counter, tm_delta_time, tm_delta_cpu_time, tm_delta_db_time, delta_time, delta_read_io_requests, delta_write_io_requests, delta_read_io_bytes, delta_write_io_bytes, delta_interconnect_io_bytes, pga_allocated, temp_space_allocated)
- as
- select /* ASH/AWR meta attributes */
- ash.snap_id, ash.dbid, ash.instance_number,
- ash.sample_id, ash.sample_time,
- /* Session/User attributes */
- ash.session_id, ash.session_serial#,
- decode(ash.session_type, 1,'FOREGROUND', 'BACKGROUND'),
- ash.flags,
- ash.user_id,
- /* SQL attributes */
- ash.sql_id,
- decode(bitand(ash.flags, power(2, 4)), NULL, 'N', 0, 'N', 'Y'),
- ash.sql_child_number, ash.sql_opcode,
- (select command_name from WRH$_SQLCOMMAND_NAME
- where command_type = ash.sql_opcode
- and dbid = ash.dbid) as sql_opname,
- ash.force_matching_signature,
- decode(ash.top_level_sql_id, NULL, ash.sql_id, ash.top_level_sql_id),
- decode(ash.top_level_sql_id, NULL, ash.sql_opcode,
- ash.top_level_sql_opcode),
- /* SQL Plan/Execution attributes */
- ash.sql_plan_hash_value,
- decode(ash.sql_plan_line_id, 0, to_number(NULL), ash.sql_plan_line_id),
- (select operation_name from WRH$_PLAN_OPERATION_NAME
- where operation_id = ash.sql_plan_operation#
- and dbid = ash.dbid) as sql_plan_operation,
- (select option_name from WRH$_PLAN_OPTION_NAME
- where option_id = ash.sql_plan_options#
- and dbid = ash.dbid) as sql_plan_options,
- decode(ash.sql_exec_id, 0, to_number(NULL), ash.sql_exec_id),
- ash.sql_exec_start,
- /* PL/SQL attributes */
- decode(ash.plsql_entry_object_id,0,to_number(NULL),
- ash.plsql_entry_object_id),
- decode(ash.plsql_entry_object_id,0,to_number(NULL),
- ash.plsql_entry_subprogram_id),
- decode(ash.plsql_object_id,0,to_number(NULL),
- ash.plsql_object_id),
- decode(ash.plsql_object_id,0,to_number(NULL),
- ash.plsql_subprogram_id),
- /* PQ attributes */
- decode(ash.qc_session_id, 0, to_number(NULL), ash.qc_instance_id),
- decode(ash.qc_session_id, 0, to_number(NULL), ash.qc_session_id),
- decode(ash.qc_session_id, 0, to_number(NULL), ash.qc_session_serial#),
- decode(ash.px_flags, 0, to_number(NULL), ash.px_flags),
- /* Wait event attributes */
- decode(ash.wait_time, 0, evt.event_name, NULL),
- decode(ash.wait_time, 0, evt.event_id, NULL),
- ash.seq#,
- evt.parameter1, ash.p1,
- evt.parameter2, ash.p2,
- evt.parameter3, ash.p3,
- decode(ash.wait_time, 0, evt.wait_class, NULL),
- decode(ash.wait_time, 0, evt.wait_class_id, NULL),
- ash.wait_time,
- decode(ash.wait_time, 0, 'WAITING', 'ON CPU'),
- ash.time_waited,
- (case when ash.blocking_session = 4294967295
- then 'UNKNOWN'
- when ash.blocking_session = 4294967294
- then 'GLOBAL'
- when ash.blocking_session = 4294967293
- then 'UNKNOWN'
- when ash.blocking_session = 4294967292
- then 'NO HOLDER'
- when ash.blocking_session = 4294967291
- then 'NOT IN WAIT'
- else 'VALID'
- end),
- (case when ash.blocking_session between 4294967291 and 4294967295
- then to_number(NULL)
- else ash.blocking_session
- end),
- (case when ash.blocking_session between 4294967291 and 4294967295
- then to_number(NULL)
- else ash.blocking_session_serial#
- end),
- (case when ash.blocking_session between 4294967291 and 4294967295
- then to_number(NULL)
- else ash.blocking_inst_id
- end),
- (case when ash.blocking_session between 4294967291 and 4294967295
- then NULL
- else decode(bitand(ash.flags, power(2, 3)), NULL, 'N',
- 0, 'N', 'Y')
- end),
- /* Session's working context */
- ash.current_obj#, ash.current_file#, ash.current_block#,
- ash.current_row#, ash.top_level_call#,
- (select top_level_call_name from WRH$_TOPLEVELCALL_NAME
- where top_level_call# = ash.top_level_call#
- and dbid = ash.dbid) as top_level_call_name,
- decode(ash.consumer_group_id, 0, to_number(NULL),
- ash.consumer_group_id),
- ash.xid,
- decode(ash.remote_instance#, 0, to_number(NULL), ash.remote_instance#),
- ash.time_model,
- decode(bitand(ash.time_model,power(2, 3)),0,'N','Y')
- as in_connection_mgmt,
- decode(bitand(ash.time_model,power(2, 4)),0,'N','Y')as in_parse,
- decode(bitand(ash.time_model,power(2, 7)),0,'N','Y')as in_hard_parse,
- decode(bitand(ash.time_model,power(2,10)),0,'N','Y')as in_sql_execution,
- decode(bitand(ash.time_model,power(2,11)),0,'N','Y')
- as in_plsql_execution,
- decode(bitand(ash.time_model,power(2,12)),0,'N','Y')as in_plsql_rpc,
- decode(bitand(ash.time_model,power(2,13)),0,'N','Y')
- as in_plsql_compilation,
- decode(bitand(ash.time_model,power(2,14)),0,'N','Y')
- as in_java_execution,
- decode(bitand(ash.time_model,power(2,15)),0,'N','Y')as in_bind,
- decode(bitand(ash.time_model,power(2,16)),0,'N','Y')as in_cursor_close,
- decode(bitand(ash.time_model,power(2,17)),0,'N','Y')as in_sequence_load,
- decode(bitand(ash.flags,power(2,5)),NULL,'N',0,'N','Y')
- as capture_overhead,
- decode(bitand(ash.flags,power(2,6)), NULL,'N',0,'N','Y' )
- as replay_overhead,
- decode(bitand(ash.flags,power(2,0)),NULL,'N',0,'N','Y') as is_captured,
- decode(bitand(ash.flags,power(2,2)), NULL,'N',0,'N','Y' )as is_replayed,
- /* Application attributes */
- ash.service_hash, ash.program,
- ash.module module,
- ash.action action,
- ash.client_id,
- ash.machine, ash.port, ash.ecid,
- /* DB Replay info */
- ash.dbreplay_file_id, ash.dbreplay_call_counter,
- /* stash columns */
- ash.tm_delta_time,
- ash.tm_delta_cpu_time,
- ash.tm_delta_db_time,
- ash.delta_time,
- ash.delta_read_io_requests,
- ash.delta_write_io_requests,
- ash.delta_read_io_bytes,
- ash.delta_write_io_bytes,
- ash.delta_interconnect_io_bytes,
- ash.pga_allocated,
- ash.temp_space_allocated
- from WRM$_SNAPSHOT sn, WRH$_ACTIVE_SESSION_HISTORY ash, WRH$_EVENT_NAME evt
- where ash.snap_id = sn.snap_id(+)
- and ash.dbid = sn.dbid(+)
- and ash.instance_number = sn.instance_number(+)
- and ash.dbid = evt.dbid
- and ash.event_id = evt.event_id;
- ----以下数据不能导出
- SELECT * FROM sys.Ku_Noexp_View d WHERE d.name LIKE '%WRH%' ;
- SELECT * FROM DBA_OBJECTS d WHERE d.ORACLE_MAINTAINED='Y' AND D.object_name LIKE 'WR%';
- -------------------默认用户
- SELECT d.username,d.default_tablespace,d.account_status, 'create user '|| d.username|| ' identified by '|| d.username ||' default tablespace '||d.default_tablespace||';' FROM dba_users d WHERE d.username not in ('ANONYMOUS','APEX_030200','APEX_PUBLIC_USER','APPQOSSYS','BI','CTXSYS','DBSNMP','DIP','DMSYS','DVSYS','EXFSYS','FLOWS_FILES','HR','IX','LBACSYS','MDDATA','MDSYS','MGMT_VIEW','OE','OLAPSYS','ORACLE_OCM','ORDDATA','ORDPLUGINS','ORDSYS','OUTLN','OWBSYS','OWBSYS_AUDIT','PM','REMOTE_SCHEDULER_AGENT','SCOTT','SH','SI_INFORMATN_SCHEMA','SI_INFORMTN_SCHEMA','SPATIAL_CSW_ADMIN_USR','SPATIAL_WFS_ADMIN_USR','SYS','SYSMAN','SYSTEM','TSMSYS','WK_TEST','WKPROXY','WKSYS','WMSYS','XDB','XS$NULL','CSMIG');
- -------------------------------------expdp和impdp 数据泵
- `date +%Y%m%d`
- %date:~0,4%%date:~5,2%%date:~8,2%
- set CurDate=%date:~0,4%%date:~5,2%%date:~8,2%
- set hh=%time:~0,2%
- if /i %hh% LSS 10 ( set hh=0%time:~1,1%)
- set ms=%time:~3,2%%time:~6,2%
- set my_date=%CurDate%%hh%%ms%
- grant read,write on directory DATA_PUMP_DIR to LHR;
- windows下用:expdp \"/ AS SYSDBA\"
- -------------导出到服务端
- expdp scott/tiger@orclasm directory=DATA_PUMP_DIR TABLES=EMP,DEPT dumpfile=expdp_by_lhr_`date +%Y%m%d`.dmp LOGFILE=expdp_by_lhr_`date +%Y%m%d`.log
- expdp scott/tiger@orclasm directory=DATA_PUMP_DIR TABLES=EMP,DEPT dumpfile=expdp_by_lhr_%date:~0,4%%date:~5,2%%date:~8,2%.dmp LOGFILE=expdp_by_lhr_%date:~0,4%%date:~5,2%%date:~8,2%.log
- --表级别
- expdp lhr/lhr@orclasm directory=DATA_PUMP_DIR dumpfile=exptable.dmp TABLES=TEST_TSPITR2,TEST_TSPITR3 LOGFILE=expdp_table.log
- expdp scott/tiger@orclasm directory=DATA_PUMP_DIR dumpfile=exptable.dmp TABLES=EMP,DEPT LOGFILE=expdp_table.log
- expdp system/lhr@orclasm DIRECTORY=DATA_PUMP_DIR DUMPFILE=exp_tab.dmp LOGFILE=exp_tab.log SCHEMAS=scott INCLUDE=TABLE:\"IN ('EMP', 'DEPT')\"
- impdp lhr/lhr@orclxp directory=DATA_PUMP_DIR dumpfile=exptable.dmp LOGFILE=impdp_table.log
- --schema级别
- expdp lhr/lhr@orclasm directory=DATA_PUMP_DIR dumpfile=HR.dmp SCHEMAS=HR,SCOTT,TESTUSER LOGFILE=HR.log
- expdp system/oracle@orcl DIRECTORY=DATA_DUMP_DIR DUMPFILE=test_20140324.DMP SCHEMAS=test logfile=test_expdp_20111014.log status=10 parallel=4 CONTENT=ALL COMPRESSION=ALL
- impdp lhr/lhr@orclasm directory=DATA_PUMP_DIR dumpfile=HR.dmp SCHEMAS=HR,SCOTT,TESTUSER parallel=4 LOGFILE=HR_20151125.log
- --整个数据库
- expdp SYSTEM/ORACLE@ORCL DIRECTORY=DATA_DUMP_DIR DUMPFILE=TEST_20140324.DMP SCHEMAS=TEST LOGFILE=TEST_EXPDP_20111014.LOG STATUS=10 PARALLEL=1 CONTENT=ALL FLASHBACK_SCN=18341888 COMPRESSION=ALL
- expdp \'/ AS SYSDBA\' DIRECTORY=DATA_DUMP_DIR FULL=Y DUMPFILE=FULLEXP.DMP LOGFILE=FULLEXP.LOG PARALLEL=2
- impdp \'/ AS SYSDBA\' DIRECTORY=DATA_DUMP_DIR FULL=Y DUMPFILE=FULLEXP.DMP LOGFILE=FULLIMP.LOG PARALLEL=2 TABLE_EXISTS_ACTION=REPLACE EXCLUDE=STATISTICS,SCHEMA,TABLESPACE,ROLE,DIRECTORY,CONTEXT,PROFILE
- impdp LHR/LHR@ORCLASM DIRECTORY=DATA_PUMP_DIR DUMPFILE=HR.DMP SCHEMAS=HR,SCOTT,TESTUSER PARALLEL=4 LOGFILE=HR_20151125.LOG
- expdp SYSTEM/LHR DIRECTORY=DATA_PUMP_DIR DUMPFILE=EXPDP_FULL_20150417.DMP FULL=Y LOGFILE=EXPDP_FULL_20150417.LOG EXCLUDE=STATISTICS
- impdp SYSTEM/LHR DIRECTORY=DATA_PUMP_DIR DUMPFILE=EXPDP_FULL_20150417.DMP FULL=Y LOGFILE=IMPDP_FULL_20150417.LOG PARALLEL=4 EXCLUDE=STATISTICS:"IN('')"
- ORACLE_SID=ORA1024G
- impdp \"/ AS SYSDBA\" DIRECTORY=DATA_PUMP_DIR DUMPFILE=EXPDP_FULL_20150417.DMP FULL=Y LOGFILE=IMPDP_FULL_20150417.LOG JOB_NAME=IMPDP_LHR EXCLUDE=SCHEMA,TABLESPACE,ROLE,DIRECTORY, CONTEXT,PROFILE PARALLEL=2 TABLE_EXISTS_ACTION=REPLACE
- impdp \"/ AS SYSDBA\" DIRECTORY=DATA_PUMP_DIR DUMPFILE=EXPDP_FULL_20150417.DMP FULL=Y LOGFILE=IMPDP_FULL_20150417.LOG JOB_NAME=IMPDP_LHR EXCLUDE=TABLESPACE,ROLE,DIRECTORY, CONTEXT,PROFILE,USER,SCHEMA:"\=\'SYS'",SCHEMA:"\=\'IX'" PARALLEL=2 TABLE_EXISTS_ACTION=REPLACE
- ------ query选项
- [ZFZHLHRDB1:oracle]:/oracle>more /tmp/scottfile.par
- query=SCOTT.EMP:"WHERE DEPTNO=20",SCOTT.DEPT:"WHERE DNAME='SALES'"
- [ZFZHLHRDB1:oracle]:/oracle> expdp \'/ AS SYSDBA\' directory=DATA_PUMP_DIR schemas=SCOTT dumpfile=test_query_lhr_scott_02.dmp parfile=/tmp/scottfile.par log=test_query_lhr_scott_02.log
- ----- include
- expdp \'/ AS SYSDBA\' directory=DATA_PUMP_DIR schemas=SCOTT dumpfile=test_include_lhr_scott_03.dmp logfile=test_include_lhr_scott_03.log job_name=my_job_lhr include=procedure,function,sequence:"like '%TEST%'"
- include=procedure,function,sequence:"like '%TEST%'"
- include=procedure
- include=function
- include=sequence:"like '%TEST%'"
- expdp \'/ AS SYSDBA\' directory=DATA_PUMP_DIR schemas=SCOTT dumpfile=test_include_lhr_scott_05.dmp logfile=test_include_lhr_scott_05.log job_name=my_job_lhr parfile=/tmp/parfile.par
- expdp \'/ AS SYSDBA\' directory=DATA_PUMP_DIR schemas=SCOTT dumpfile='expdp_by_lhr_%date:~0,4%%date:~5,2%%date:~8,2%.dmp' LOGFILE='expdp_by_lhr_%date:~0,4%%date:~5,2%%date:~8,2%.log' job_name=my_job_lhr parfile=/tmp/parfile.par
- -------- trace
- expdp \'/ AS SYSDBA\' directory=DATA_PUMP_DIR schemas=SCOTT dumpfile=test_query_lhr_scott_02.dmp parfile=/tmp/scottfile.par log=test_query_lhr_scott_02.log trace=4a0300
- ---------导出到本地
- expdp lhr/lhr@orclxp directory=DATA_PUMP_DIR dumpfile=exptable.dmp TABLES=xb_log_lhr network_link=dblk_orclasm LOGFILE=expdp_table.log
- impdp lhr/lhr@orclxp directory=DATA_PUMP_DIR dumpfile=exptable.dmp LOGFILE=impdp_table.log
- ---- 直接导入 不生成文件
- impdp lhr/lhr@orclxp network_link=dblk_orclasm directory=DATA_PUMP_DIR TABLES=xb_log_lhr PARALLEL=2 LOGFILE=impdp_table.log
- ---- 生成ddl语句 不会导入数据
- --expdp \'/ AS SYSDBA\' tables=lhr.exptest directory=DATA_PUMP_DIR dumpfile=exptest.dmp logfile=exp_exptest.dmp EXCLUDE=STATISTICS
- --expdp \'/ AS SYSDBA\' directory=DATA_PUMP_DIR dumpfile=lhrsql20161215.dmp logfile=lhrsql20161215.log content=metadata_only schemas=SCOTT EXCLUDE=STATISTICS
- impdp \'/ AS SYSDBA\' directory=DATA_PUMP_DIR dumpfile=lhrsql20161215.dmp logfile=imp_exptest.log sqlfile=exptest.sql
- exp \'/ AS SYSDBA\' tables=scott.emp file=/tmp/exp_ddl_lhr_01.dmp log=/tmp/exp_table.log buffer=41943040 rows=n compress=n
- imp \'/ AS SYSDBA\' file=/tmp/exp_ddl_lhr_01.dmp show=y log=/tmp/get_ddl.sql buffer=20480000 full=y
- set pagesize 0
- set trimspool ON
- SET linesize 10000
- set long 90000
- set feedback OFF
- set feed off;
- set echo off
- spool schema_scott.sql
- SELECT DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, U.OBJECT_NAME,U.owner)
- FROM DBA_OBJECTS U
- WHERE U.OBJECT_TYPE IN ('TABLE', 'INDEX', 'PROCEDURE', 'FUNCTION','PACKAGE','TRIGGER')
- AND U.owner='SCOTT';
- spool off;
- ----只导出表结构
- expdp lhr/lhr directory=DATA_PUMP_DIR dumpfile=lhrsql20150515.dmp logfile=lhrsql20150515.log content=metadata_only schemas=TEST,SQCHECK,DWUSER
- impdp lhr/lhr directory=DATA_PUMP_DIR dumpfile=lhrsql20150515.dmp logfile=imp_exptest.log sqlfile=lhrsql20150515.sql
- impdp lhr/lhr directory=DATA_PUMP_DIR dumpfile=lhrsql20150515.dmp logfile=lhrsql20150515_imp.log
- impdp lhr/lhr directory=DATA_PUMP_DIR dumpfile=lhrsql20150515.dmp logfile=imp_exptest.log TRANSFORM=storage:n TRANSFORM=SEGMENT_CREATION:n
- impdp lhr/lhr directory=DATA_PUMP_DIR dumpfile=lhrsql20150515.dmp logfile=imp_exptest.log sqlfile=lhrsql20150515.sql TRANSFORM=segment_attributes:n
- --transform=segment_attributes|storage|SEGMENT_CREATION|oid|pctspace:Y/N:object_type
- ----修改对象schema和tablespace
- impdp test/test directory=exp_dump dumpfile=test.dmp logfile=test.log remap_schema=test1:test2 remap_tablespace=TBS_DAT_1:TBS_DAT_2,TBS_IDX_1:TBS_IDX_2
- impdp test/test directory=exp_dump dumpfile=test.dmp logfile=test.log remap_schema=test1:test2 remap_tablespace=TBS_DAT_1:TBS_DAT_2 remap_tablespace=TBS_IDX_1:TBS_IDX_2
- ----显示时间
- expdp SCOTT/tiger@orclasm DIRECTORY=DATA_PUMP_DIR DUMPFILE=SCOTT%U.dmp SCHEMAS=SCOTT COMPRESSION=all metrics=y
- --dmp文件重用 reuse_dumpfiles=y
- expdp \''sys/"l@h\r/0"'@LHRDB as sysdba\' DIRECTORY=DATA_PUMP_DIR DUMPFILE=dmp_SCOTT.dmp SCHEMAS=SCOTT reuse_dumpfiles=y
- #scp -r root@10.0.24.103:/home2/backup/ /home/mover00/shadow_bak/sites/
- 拷贝远程(10.0.24.103)的/home2/backup/ 到本地的 /home/mover00/shadow_bak/sites/
- #scp -r /home2/backup/ root@10.0.24.99:/home/mover00/shadow_bak/sites/
- 拷贝本地的/home2/backup/ 到远程(10.0.24.99)的 /home/mover00/shadow_bak/sites/
- set line 9999
- col owner_name for a10
- col job_name for a25
- col operation for a10
- col job_mode for a10
- col state for a15
- col job_mode for a10
- col state for a15
- col osuser for a10
- col "degree|attached|datapump" for a25
- col session_info for a20
- SELECT s.inst_id,
- dj.owner_name,
- dj.job_name,
- dj.operation,
- dj.job_mode,
- dj.state,
- dj.degree || ',' || dj.attached_sessions || ',' ||
- dj.datapump_sessions "degree|attached|datapump",
- ds.session_type,
- s.osuser,
- (SELECT s.SID || ',' || s.SERIAL# || ',' || p.SPID
- FROM gv$process p
- where s.paddr = p.addr
- AND s.inst_id = p.inst_id) session_info
- FROM DBA_DATAPUMP_JOBS dj --gv$datapump_job
- full outer join dba_datapump_sessions ds --gv$datapump_session
- on (dj.job_name = ds.job_name and dj.owner_name = ds.owner_name)
- left outer join gv$session s
- on (s.saddr = ds.saddr)
- ORDER BY dj.owner_name, dj.job_name;
- select * from GV$DATAPUMP_SESSION;
- select * from GV$datapump_jobs;
- select * From dba_datapump_jobs;
- impdp \"/ as sysdba\" attach=IMPDP_LHR
- ------------- parfile
- [root@rhel6_lhr dpdump]# more par.f
- DUMPFILE=EXPDAT.DMP
- DIRECTORY=DATA_PUMP_DIR
- TRANSPORT_DATAFILES=
- /u01/app/oracle/admin/orclasm/dpdump/APP1TBS.DBF,
- /u01/app/oracle/admin/orclasm/dpdump/APP2TBS.DBF,
- /u01/app/oracle/admin/orclasm/dpdump/IDXTBS.DBF
- LOGFILE=tts_import.log
- [root@rhel6_lhr dpdump]#
- [oracle@rhel6 ~]$ impdp system/lhr parfile='/u01/app/oracle/admin/orclasm/dpdump/par.f'
- ----查看用户的目录权限
- column grantee format a10
- column grantor format a10
- column dir_name format a20
- column dir_path format a50
- column privilege format a10
- break on dir_name
- select
- d.directory_name dir_name,
- d.directory_path dir_path,
- p.privilege,
- p.grantee,
- p.grantor
- from
- dba_tab_privs p,
- dba_directories d
- where
- p.table_name = d.directory_name and
- p.grantee = upper('&user')
- order by
- d.directory_name,
- p.privilege
- /
- CREATE USER LHRSYS IDENTIFIED BY LHRSYS;
- GRANT UPDATE (ENAME,SAL) ON SCOTT.EMP TO LHRSYS;
- GRANT UPDATE (ENAME) ON SCOTT.EMP TO LHRSYS;
- GRANT SELECT ON SCOTT.EMP TO LHRSYS;
- GRANT CONNECT TO LHRSYS;
- GRANT CREATE JOB TO LHRSYS;
- SELECT * FROM DBA_COL_PRIVS D WHERE D.GRANTEE='LHRSYS';
- SELECT * FROM DBA_TAB_PRIVS D WHERE D.GRANTEE='LHRSYS';
- SELECT * FROM DBA_SYS_PRIVS D WHERE D.GRANTEE='LHRSYS';
- SELECT * FROM DBA_ROLE_PRIVS D WHERE D.GRANTEE='LHRSYS';
- --查看创建表SQL语句:
- SELECT DBMS_METADATA.GET_DDL('TABLE','DEPT','SCOTT') FROM DUAL;
- SELECT DBMS_METADATA.GET_DDL('TABLE',U.TABLE_NAME) FROM USER_TABLES U;
- --查看创建索引的SQL语句:
- SELECT DBMS_METADATA.GET_DDL('INDEX','PK_DEPT','SCOTT') FROM DUAL;
- SELECT DBMS_METADATA.GET_DDL('INDEX',U.INDEX_NAME) FROM USER_INDEXES U;
- --查看创建主键的SQL语句:
- SELECT DBMS_METADATA.GET_DDL('CONSTRAINT','EMP_PK') FROM DUAL;
- --查看创建外键的SQL语句:
- SELECT DBMS_METADATA.GET_DDL('REF_CONSTRAINT','EMP_FK_DEPT') FROM DUAL;
- --查看创建视图(VIEW)的SQL语句:
- SELECT DBMS_METADATA.GET_DDL('VIEW', 'MY_TABLES','SCOTT') FROM DUAL;
- SELECT DBMS_METADATA.GET_DDL('VIEW', U.OBJECT_NAME)
- FROM USER_OBJECTS U
- WHERE OBJECT_TYPE = 'VIEW';
- SELECT TEXT FROM USER_VIEWS WHERE VIEW_NAME=UPPER('&VIEW_NAME');
- --查看创建存储过程(PROCEDURE)的SQL语句:
- SELECT DBMS_METADATA.GET_DDL('PROCEDURE', U.OBJECT_NAME)
- FROM USER_OBJECTS U
- WHERE OBJECT_TYPE = 'PROCEDURE';
- --查看创建触发器(TRIGGER)的SQL语句:
- SELECT DBMS_METADATA.GET_DDL('TRIGGER', U.OBJECT_NAME)
- FROM USER_OBJECTS U
- WHERE OBJECT_TYPE = 'TRIGGER';
- --查看创建函数(FUNCTION)的SQL语句:
- SELECT DBMS_METADATA.GET_DDL('FUNCTION', U.OBJECT_NAME)
- FROM USER_OBJECTS U
- WHERE OBJECT_TYPE = 'FUNCTION';
- --查看创建包(PACKAGE)的SQL语句:
- SELECT DBMS_METADATA.GET_DDL('PACKAGE', U.OBJECT_NAME)
- FROM USER_OBJECTS U
- WHERE OBJECT_TYPE = 'PACKAGE';
- --查看创建序列(SEQUENCE)的SQL语句:
- SELECT DBMS_METADATA.GET_DDL('SEQUENCE', U.OBJECT_NAME)
- FROM USER_OBJECTS U
- WHERE OBJECT_TYPE = 'SEQUENCE';
- --查看创建同义词(SYNONYM)的SQL语句:
- SELECT DBMS_METADATA.GET_DDL('SYNONYM', U.OBJECT_NAME)
- FROM USER_OBJECTS U
- WHERE OBJECT_TYPE = 'SYNONYM';
- --查看创建表空间(TABLESPACE)的SQL语句:
- SELECT DBMS_METADATA.GET_DDL('TABLESPACE', U.TABLESPACE_NAME)
- FROM USER_TABLESPACES U;
- --查看创建角色(ROLE)的SQL语句:
- SELECT DBMS_METADATA.GET_DDL('ROLE', U.ROLE) FROM DBA_ROLES U;
- --查看创建用户(USER)的SQL语句:
- SELECT DBMS_METADATA.GET_DDL('USER','SYS') FROM DUAL;
- ------------------------- 得到表空间DDL语句
- SELECT (SELECT b.NAME FROM v$tablespace b WHERE b.TS# = a.TS#) ts_name,
- a.NAME datafilename,
- 'create tablespace '||(SELECT b.NAME FROM v$tablespace b WHERE b.TS# = a.TS#) || ' datafile ' || a.NAME ||' size ;'
- FROM v$datafile a;
- SELECT TABLESPACE_NAME,
- substr(create_ts, 1, instr(create_ts, 'EXTENT') - 1) || ';'
- FROM (SELECT a.TABLESPACE_NAME,
- replace(to_char(DBMS_METADATA.GET_DDL('TABLESPACE',
- a.tablespace_name)),
- chr(10),
- '') create_ts
- FROM DBA_TABLESPACES a) v
- where v.TABLESPACE_NAME not in
- ('SYSTEM', 'SYSAUX', 'UNDOTBS1', 'TEMP', 'USERS', 'EXAMPLE');
- ------------------------- 得到用户及其权限的DDL语句
- SELECT DBMS_METADATA.GET_DDL('USER','LHRSYS') DDL_SQL FROM DUAL
- UNION ALL
- SELECT ((DBMS_METADATA.GET_GRANTED_DDL('OBJECT_GRANT', 'LHRSYS'))) FROM DUAL
- UNION ALL
- SELECT ((DBMS_METADATA.GET_GRANTED_DDL('ROLE_GRANT', 'LHRSYS'))) FROM DUAL
- UNION ALL
- SELECT ((DBMS_METADATA.GET_GRANTED_DDL('SYSTEM_GRANT', 'LHRSYS'))) FROM DUAL;
- drop table t_tmp_user_lhr;
- create table t_tmp_user_lhr( id number, username varchar2(50), exec_sql varchar2(4000),create_type varchar2(20) );
- DROP sequence s_t_tmp_user_lhr;
- create sequence s_t_tmp_user_lhr;
- begin
- for cur in (SELECT d.username,
- d.default_tablespace,
- d.account_status,
- 'create user ' || d.username || ' identified by ' ||
- d.username || ' default tablespace ' ||
- d.default_tablespace || ' TEMPORARY TABLESPACE ' ||
- D.temporary_tablespace || ';' CREATE_USER,
- replace(to_char(DBMS_METADATA.GET_DDL('USER',
- D.username)),
- chr(10),
- '') create_USER1
- FROM dba_users d
- WHERE d.username not in ('ANONYMOUS','APEX_030200','APEX_PUBLIC_USER','APPQOSSYS','BI','CTXSYS','DBSNMP','DIP','DMSYS','DVSYS','EXFSYS','FLOWS_FILES','HR','IX','LBACSYS','MDDATA','MDSYS','MGMT_VIEW','OE','OLAPSYS','ORACLE_OCM','ORDDATA','ORDPLUGINS','ORDSYS','OUTLN','OWBSYS','OWBSYS_AUDIT','PM','REMOTE_SCHEDULER_AGENT','SCOTT','SH','SI_INFORMATN_SCHEMA','SI_INFORMTN_SCHEMA','SPATIAL_CSW_ADMIN_USR','SPATIAL_WFS_ADMIN_USR','SYS','SYSMAN','SYSTEM','TSMSYS','WK_TEST','WKPROXY','WKSYS','WMSYS','XDB','XS$NULL','CSMIG')) loop
- INSERT INTO t_tmp_user_lhr
- (id, username, exec_sql, create_type)
- values
- (s_t_tmp_user_lhr.nextval, cur.username, cur.CREATE_USER, 'USER');
- INSERT INTO t_tmp_user_lhr
- (id, username, exec_sql, create_type)
- SELECT s_t_tmp_user_lhr.nextval,
- cur.username,
- CASE
- WHEN D.ADMIN_OPTION = 'YES' THEN
- 'GRANT ' || d.privilege || ' TO ' || d.GRANTEE ||
- ' WITH GRANT OPTION ;'
- ELSE
- 'GRANT ' || d.privilege || ' TO ' || d.GRANTEE || ';'
- END priv,
- 'DBA_SYS_PRIVS'
- FROM dba_sys_privs d
- WHERE D.GRANTEE = CUR.USERNAME;
- INSERT INTO t_tmp_user_lhr
- (id, username, exec_sql, create_type)
- SELECT s_t_tmp_user_lhr.nextval,
- cur.username,
- CASE
- WHEN D.ADMIN_OPTION = 'YES' THEN
- 'GRANT ' || d.GRANTED_ROLE || ' TO ' || d.GRANTEE ||
- ' WITH GRANT OPTION;'
- ELSE
- 'GRANT ' || d.GRANTED_ROLE || ' TO ' || d.GRANTEE || ';'
- END priv,
- 'DBA_ROLE_PRIVS'
- FROM DBA_ROLE_PRIVS d
- WHERE D.GRANTEE = CUR.USERNAME;
- INSERT INTO t_tmp_user_lhr
- (id, username, exec_sql, create_type)
- SELECT s_t_tmp_user_lhr.nextval,
- cur.username,
- CASE
- WHEN d.grantable = 'YES' THEN
- 'GRANT ' || d.privilege || ' ON ' || d.owner || '.' ||
- d.table_name || ' TO ' || d.GRANTEE ||
- ' WITH GRANT OPTION ;'
- ELSE
- 'GRANT ' || d.privilege || ' ON ' || d.owner || '.' ||
- d.table_name || ' TO ' || d.GRANTEE || ';'
- END priv,
- 'DBA_TAB_PRIVS'
- FROM DBA_TAB_PRIVS d
- WHERE D.GRANTEE = CUR.USERNAME;
- end loop;
- COMMIT;
- end;
- /
- SELECT * FROM t_tmp_user_lhr;
- ------------------------------------------------------------------------------------------------------------------------------
- ------------------------------------------------------------------------------------------------------------------------------
- ---怎么批量去除WORD里表格中的超链接
- 全选文档。按"Ctrl+shift+F9"断开连接就行了。
- ------------------------------------------------------------------------------------------------------------------------------
- ------------------------------------------------------------------------------------------------------------------------------
- ----linux下批量查找/替换文本内容
- --一般在本地电脑上批量替换文本有许多工具可以做到,比如sublime text ,但大多服务器上都是无图形界面的,为此收集了几条针对linux命令行 实现批量替换文本内容的命令:
- --1.批量查找某个目下文件的包含的内容,例如:
- # grep -rn "要找查找的文本" ./
- [oracle@rhel6_lhr dpdump]$ grep -rn "ALTER SESSION SET EVENTS" ./
- ./spool_result.sql:2:ALTER SESSION SET EVENTS '10150 TRACE NAME CONTEXT FOREVER, LEVEL 1';
- ./spool_result.sql:3:ALTER SESSION SET EVENTS '10904 TRACE NAME CONTEXT FOREVER, LEVEL 1';
- ./spool_result.sql:4:ALTER SESSION SET EVENTS '25475 TRACE NAME CONTEXT FOREVER, LEVEL 1';
- ./spool_result.sql:5:ALTER SESSION SET EVENTS '10407 TRACE NAME CONTEXT FOREVER, LEVEL 1';
- ./spool_result.sql:6:ALTER SESSION SET EVENTS '10851 TRACE NAME CONTEXT FOREVER, LEVEL 1';
- ./spool_result.sql:7:ALTER SESSION SET EVENTS '22830 TRACE NAME CONTEXT FOREVER, LEVEL 192 ';
- --2.批量查找并替换文件内容。
- # sed -i "s/要找查找的文本/替换后的文本/g" `grep -rl "要找查找的文本" ./`
- 例如替换 被病毒修改的一段脚本:
- sed -i "s/<script type=\"text\/javascript\" src='http:\/\/t.cn\/RhyQ1GN'><\/script>//g" `grep -rl "<script type=\"text\/javascript\" src='http:\/\/t.cn\/RhyQ1GN'><\/script>" ./`
- ----将STORAGE(INITIAL开头的行整行替换为STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
- -- 必须加 点和星号和最后的g ,否则不能整行替换
- sed 's/^STORAGE(INITIAL.*/STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645/g' a.txt > b.txt
- -------------------------------------------------------------------------------------------------------------- 修改日期的显示格式
- execute immediate 'alter session set NLS_DATE_FORMAT=''YYYY-MM-DD DY HH24:MI:SS''';
- alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
- alter system set nls_date_format='yyyy-mm-dd hh24:mi:ss' scope=spfile;
- ----------------------------------------------------------------------------- sqlplus 设置
- --$ORACLE_HOME/sqlplus/admin/glogin.sql
- set linesize 9999 pagesize 9999
- set sqlprompt "_USER'@'_CONNECT_IDENTIFIER> "
- set time on;
- set line 9999
- set pagesize 9999;
- set timing on;
- set sqlprompt "_USER'@'_CONNECT_IDENTIFIER> "
- set echo on;
- set time on;
- SET LONG 99999999;
- SET LONGCHUNKSIZE 1000000;
- set timing on;
- set serveroutput on size 1000000;
- set sqlblanklines on;
- set linesize 800;
- set pagesize 50000;
- set sqlprompt "_USER'@'_CONNECT_IDENTIFIER> "
- host color 02
- alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';
- set errorlogging on table lhr.sperrorlog;
- set errorlogging on identifier LHR_SESSION
- --- alter session set nls_date_language='american' ;
- --------------------------------------------------------rman备份-----------------------------------------------------------
- backup as backupset database format '/u05/oracle/oracle_bk/orclasm/full_%n_%T_%t_%s_%p.bak' include current controlfile plus archivelog;
- backup as compressed backupset format '/arch/oracle_bk/ora2lhr/full_%n_%T_%t_%s.bak' database include current controlfile plus archivelog delete input ;
- ----------------------------- 归档 open 全备
- export ORACLE_SID=ora11g
- export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
- export PATH=$ORACLE_HOME/bin:$PATH
- MYDATE=`date +'%Y%m%d%H%M%S'`
- BACKUP_DIR=/home/oracle/oracle_bk/$ORACLE_SID
- mkdir -p $BACKUP_DIR/log
- rman target / log $BACKUP_DIR/log/rman_full_$MYDATE.log append <<EOF
- run
- {
- allocate channel c1 type disk;
- allocate channel c2 type disk;
- backup database filesperset 4 format '$BACKUP_DIR/full_%n_%T_%t_%s_%p.bak';
- backup spfile tag='bk_spfile_$MYDATE' format='$BACKUP_DIR/spfile_%n_%U_%T.bak';
- sql 'alter system archive log current';
- backup archivelog all format '$BACKUP_DIR/arch_%d_%T_%s_%p.bak' delete input;
- backup current controlfile format '$BACKUP_DIR/ctl_%d_%T_%s_%p.bak';
- release channel c1;
- release channel c2;
- }
- EOF
- rman target / log $BACKUP_DIR/log/rman_delete_$MYDATE.log append <<EOF
- allocate channel for maintenance type disk;
- allocate channel for maintenance type sbt_tape;
- crosscheck archivelog all;
- crosscheck backup;
- delete noprompt obsolete;
- delete noprompt expired archivelog all;
- EOF
- ----------------------------- 非归档 mount 全备
- export ORACLE_SID=oralhr
- export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
- export PATH=$ORACLE_HOME/bin:$PATH
- MYDATE=`date +'%Y%m%d%H%M%S'`
- BACKUP_DIR=/home/oracle/oracle_bk/$ORACLE_SID
- mkdir -p $BACKUP_DIR/log
- rman target / log $BACKUP_DIR/log/rman_full_$MYDATE.log append <<EOF
- run
- {
- shutdown immediate;
- startup mount;
- allocate channel c1 type disk;
- allocate channel c2 type disk;
- backup database filesperset 4 format '$BACKUP_DIR/full_%n_%T_%t_%s_%p.bak';
- backup spfile tag='bk_spfile_$MYDATE' format='$BACKUP_DIR/spfile_%n_%U_%T.bak';
- backup archivelog all format '$BACKUP_DIR/arch_%d_%T_%s_%p.bak' delete input;
- backup current controlfile format '$BACKUP_DIR/ctl_%d_%T_%s_%p.bak';
- release channel c1;
- release channel c2;
- alter database open;
- }
- EOF
- rman target / log $BACKUP_DIR/log/rman_delete_$MYDATE.log append <<EOF
- allocate channel for maintenance type disk;
- allocate channel for maintenance type sbt_tape;
- crosscheck archivelog all;
- crosscheck backup;
- delete noprompt obsolete;
- EOF
- --------------------------------------------------------冷备(最适合非归档)-----------------------------------------------------------
- set feedback off
- set heading off
- set verify off
- set trimspool off
- set pagesize 0
- set linesize 200
- define dir = '/home/oracle/oracle_bk/coolbak'
- define script = '/tmp/coolbak.sql'
- spool &script
- select 'ho cp ' || name || ' &dir' from v$controlfile
- union all
- select 'ho cp ' || name || ' &dir' from v$datafile
- union all
- select 'ho cp ' || member || ' &dir' from v$logfile
- union all
- select 'ho cp ' || name || ' &dir' from v$tempfile
- /
- create pfile = '&dir/initorcl.ora' from spfile;
- ho cp /u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapwutf8test &dir
- spool off
- alter database backup controlfile to trace as '/home/oracle/oracle_bk/coolbak/ctl.sql';
- shutdown immediate
- start &script
- --ho rm &script
- startup
- ---------有坏块情况下的备份 ORA-19566: exceeded limit of 0 corrupt blocks for file /oracle/app/oracle/oralhr/users01.dbf
- run{
- set maxcorrupt for datafile 4 to 2;
- backup datafile 4 tag='2corruptblock';
- }
- --------------------------------------------------------热备(归档)-----------------------------------------------------------
- --------------------------- 热备 基于database (归档)
- set feedback off
- set heading off
- set verify off
- set trimspool off
- set pagesize 0
- set linesize 200
- define dir = '/home/oracle/oracle_bk/hotbak'
- define script = '/tmp/hotbak.sql'
- spool &script
- select 'ho cp ' ||name|| ' &dir' from v$datafile;
- spool off
- alter database begin backup;
- start &script
- alter database end backup;
- alter database backup controlfile to trace as '&dir/controlbak.sql';
- alter database backup controlfile to '&dir/controlbak.ctl';
- create pfile = '&dir/initorcl.ora' from spfile;
- --------------------------热备 基于表空间 (归档)
- set feedback off
- set heading off
- set verify off
- set trimspool off
- set pagesize 0
- set linesize 200
- define dir = '/home/oracle/oracle_bk/hotbak'
- define script = '/tmp/hotbak_tb.sql'
- spool &script
- select 'alter tablespace '|| tablespace_name ||' begin backup ;' ||
- chr(10)||'ho cp ' || file_name || ' &dir ' ||
- chr(10)||'alter tablespace '|| tablespace_name || ' end backup;'
- from dba_data_files order by tablespace_name;
- spool off
- alter system switch logfile;
- start &script
- alter system switch logfile;
- alter database backup controlfile to '&dir/controlbak.ctl';
- alter database backup controlfile to trace as '&dir/controlbak.sql';
- create pfile = '&dir/initorcl.ora' from spfile;
- ----------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------
- ----------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------
- -------------------------------------- LogMiner 日志挖掘
- 要安装LogMiner工具,必须首先要运行下面这样两个脚本:
- $ORACLE_HOME/rdbms/admin/dbmslm.sql
- $ORACLE_HOME/rdbms/admin/dbmslmd.sql
- 这两个脚本必须均以SYS用户身份运行。其中第一个脚本用来创建DBMS_LOGMNR包,该包用来分析日志文件。第二个脚本用来创建DBMS_LOGMNR_D包,该包用来创建数据字典文件。
- ---设置单独的表空间
- create tablespace ts_LOGMNR datafile '/sda4/u01/app/oracle/oradata/orcllinux/logmnr.dbf' size 1G autoextend on next 2M ;
- exec dbms_logmnr_d.set_tablespace('ts_logmnr');
- ---------------- 附加日志
- ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
- alter database add supplemental log data(primary key) columns;
- ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY, UNIQUE INDEX) COLUMNS;
- SELECT SUPPLEMENTAL_LOG_DATA_MIN,SUPPLEMENTAL_LOG_DATA_pk FROM V$DATABASE;
- ---找到需要进行日志挖掘的归档日志
- list archivelog all completed between '2017-01-01 16:20:00' and '2017-01-01 16:25:00';
- export NLS_DATE_FORMAT='YYYY-MM-DD HH24:mi:ss';
- exec dbms_logmnr.add_logfile('归档日志文件', Options => dbms_logmnr.new);
- exec dbms_logmnr.add_logfile('归档日志文件', Options => dbms_logmnr.ADDFILE);
- --若归档日志不在本地,则需要恢复相应的归档日志到本地目录。
- run {allocate channel ci type disk;
- set archivelog destination to '/tmp';
- restore archvielog from logseq xxx until logseq xxx;
- release channel ci;
- };
- -------------- 利用平面文件作为数据字典
- alter system set utl_file_dir='/home/oracle/' scope=spfile; --然后重启库
- exec dbms_logmnr_d.build('log.ora','/home/oracle/',dbms_logmnr_d.store_in_flat_file);
- exec dbms_logmnr.add_logfile('+FRA/orclasm/archivelog/2015_01_20/thread_1_seq_952.463.869481079',dbms_logmnr.new);
- exec dbms_logmnr.add_logfile('+FRA/orclasm/archivelog/2015_01_20/thread_1_seq_953.462.869481107',dbms_logmnr.addfile);
- exec dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/log.ora');
- create table LHR.testlog as select * from v$logmnr_contents a;
- EXEC DBMS_LOGMNR.END_LOGMNR;
- -------------------------- redo 字典
- ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
- exec dbms_logmnr_d.build(options => dbms_logmnr_d.STORE_IN_REDO_LOGS);
- select a.*
- from v$archived_log a
- WHERE a.name IS NOT NULL
- and (a.DICTIONARY_BEGIN = 'YES' or a.DICTIONARY_END = 'YES');
- -------------- 利用在线日志作为数据字典
- SELECT ' dbms_logmnr.add_logfile(''' || MEMBER || ''');' FROM v$logfile;
- BEGIN
- dbms_logmnr.add_logfile('+DATA/orclasm/onlinelog/group_3.263.850260263',dbms_logmnr.new) ;
- dbms_logmnr.add_logfile('+DATA/orclasm/onlinelog/group_2.262.850260259',dbms_logmnr.ADDFILE) ;
- dbms_logmnr.add_logfile('+DATA/orclasm/onlinelog/group_1.261.850260255',dbms_logmnr.ADDFILE)) ;
- dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog + dbms_logmnr.committed_data_only);
- END;
- SELECT scn, sql_redo, a.SQL_UNDO, a.*
- FROM v$logmnr_contents a
- WHERE a.OPERATION = 'INSERT'
- and a.TABLE_NAME = 'AABB';
- create table testlog as select * from v$logmnr_contents a;
- begin
- dbms_logmnr.end_logmnr();
- end;
- EXECUTE DBMS_LOGMNR_D.BUILD (OPTIONS=>DBMS_LOGMNR_D.STORE_IN_REDO_LOGS);
- -------------------------- online字典
- begin
- dbms_logmnr.start_logmnr(startScn => 23573690,
- endScn => 23632671,
- Options => dbms_logmnr.DICT_FROM_ONLINE_CATALOG + dbms_logmnr.CONTINUOUS_MINE);
- end;
- begin
- dbms_logmnr.start_logmnr(startScn => 23573690,
- endScn => 23632671,
- Options => dbms_logmnr.DICT_FROM_REDO_LOGS +
- dbms_logmnr.CONTINUOUS_MINE);
- end;
- export NLS_DATE_FORMAT='YYYY-MM-DD HH24:mi:ss';
- list archivelog all completed between '2015-06-03 08:00:00' and '2015-06-03 09:00:00';
- exec SYS.DBMS_LOGMNR.ADD_LOGFILE( '/u01/app/oracle11g/flash_recovery_area/TEST/archivelog/2015_06_03/o1_mf_1_505_7w35gdnx_.arc', sys.dbms_logmnr.New);
- BEGIN
- DBMS_LOGMNR.START_LOGMNR(
- STARTTIME => '2015-06-03 11:10:12',
- ENDTIME => '2015-06-03 11:13:06',
- OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG + DBMS_LOGMNR.CONTINUOUS_MINE);
- END;
- /
- ---查询挖掘到的结果
- select a.SCN,a.TIMESTAMP,a.SQL_REDO from v$logmnr_contents A where table_name='XXXX' and OPERATION='INSERT' order by a.SCN;
- --清除控制文件中关于v$archived_log的信息
- execute sys.dbms_backup_restore.resetCfileSection(11);
- ---恢复归档
- 1.恢复全部归档日志文件
- RMAN> restore archivelog all;
- 2.只恢复5到8这四个归档日志文件
- RMAN> restore archivelog from logseq 5 until logseq 8;
- 3.恢复从第5个归档日志起
- RMAN> restore archivelog from logseq 5;
- 4.恢复7天内的归档日志
- RMAN> restore archivelog from time 'sysdate-7';
- 5. sequence between 写法
- RMAN> restore archivelog sequence between 1 and 3;
- 6.恢复到哪个日志文件为止
- RMAN> restore archivelog until logseq 3;
- 7.从第五个日志开始恢复
- RMAN> restore archivelog low logseq 5;
- 8.到第5个日志为止
- RMAN> restore archivelog high logseq 5;
- 恢复指定的archivelog:restore archivelog sequence 18;
- --若归档日志不在本地,则需要恢复相应的归档日志到本地目录。
- run {allocate channel ci type disk;
- set archivelog destination to '/tmp';
- restore archvielog from logseq xxx until logseq xxx;
- release channel ci;
- };
- ------------------------------------------------------------------------------------------ 详细执行计划
- ---------------Session级别:
- ALTER SESSION SET STATISTICS_LEVEL=ALL;
- ----------------- 诧句级别 使用HINT
- select /*+ gather_plan_statistics*/ ...
- SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('f6cz4n8y72xdc',0,'ADVANCED ALLSTATS LAST PEEKED_BINDS'));
- -------------------------------------------------------------------------------------------- 其他
- SELECT * FROM DBA_STREAMS_UNSUPPORTED;
- ------------------- 锁和事务关系
- select * from v$lock a where type in ('TM','TX') ;
- SELECT * from v$transaction;
- select trunc(655385/power(2,16)) XIDUSN from dual;
- 10
- select bitand(655385,to_number('ffff','xxxx'))+0 XIDSLOT from dual;
- 25
- ---------------------------------truncate 后的恢复-------------------------- 恢复的过程会多次执行 alter system flush buffer_cache;
- ------------ tmp目录空闲空间需要比表的大小大
- create table lhr.TRUNTAB as SELECT * FROM dba_objects where rownum<=10;
- SELECT COUNT(1) FROM lhr.TRUNTAB;
- truncate table lhr.TRUNTAB;
- exec fy_recover_data.recover_truncated_table('LHR','TRUNTAB',1);
- SELECT * FROM lhr.TRUNTAB$$;
- insert into lhr.TRUNTAB SELECT * FROM lhr.TRUNTAB$$;
- commit;
- drop tablespace FY_REC_DATA including contents and datafiles;
- drop tablespace FY_RST_DATA including contents and datafiles;
- ---闪回
- alter table TRUNTAB enable row movement;
- flashback table TRUNTAB to timestamp to_date('2014/12/31 17:33:00','YYYY/MM/DD HH24:MI/SS');
- --------------长查询
- SELECT * FROM vw_active_session_lhr a where a.USERNAME IS NOT NULL ;
- SELECT * FROM vw_longrun_lhr;
- SET LINE 9999 PAGESIZE 9999
- col username format a10
- col session_info format a30
- col target format a20
- col opname format a35
- col message format a80
- col sofar_TOTALWORK format a20
- col progress format a8
- SELECT A.USERNAME,
- (SELECT NB.SID || ',' || NB.SERIAL# || ',' || PR.SPID || ',' ||NB.OSUSER|| ',' ||nb.status|| ',' ||nb.EVENT
- FROM GV$PROCESS PR, GV$SESSION NB
- WHERE NB.PADDR = PR.ADDR
- AND NB.SID = A.SID
- AND NB.SERIAL# = A.SERIAL#
- AND PR.INST_ID = NB.INST_ID) SESSION_INFO,
- A.TARGET,
- A.OPNAME,
- TO_CHAR(A.START_TIME, 'YYYY-MM-DD HH24:MI:SS') START_TIME,
- ROUND(A.SOFAR * 100 / A.TOTALWORK, 2) || '%' AS PROGRESS,
- (A.SOFAR || ':' || A.TOTALWORK) SOFAR_TOTALWORK,
- A.TIME_REMAINING TIME_REMAINING,
- A.ELAPSED_SECONDS ELAPSED_SECONDS,
- MESSAGE MESSAGE
- FROM GV$SESSION_LONGOPS A
- WHERE A.TIME_REMAINING <> 0
- ORDER BY A.TIME_REMAINING DESC, A.SQL_ID, A.SID;
- SELECT * FROM vw_tablespace_datafile_lhr ;
- SELECT * FROM xb_audit_ddl_lhr a WHERE a.id >=2373180 ;
- ----------------------------------------------------------- 归档
- alter system set log_archive_dest_1='location=D:\arch';
- alter system set log_archive_dest='USE_DB_RECOVERY_FILE_DEST';
- show parameter DB_RECOVERY_FILE_DEST
- 如果归档日志为自动归档,则切换日志(alter system switch logfile)会自动归档;
- 如果为手动归档模式,则不会归档,除非你执行下列命令手动归档:
- alter system archive log sequence lognumber
- alter system archive log all
- alter system archive log current
- 查看归档日志模式:select log_mode from v$database;
- NOARCHIVELOG-- 为不归档
- ARCHIVELOG -- 为自动归档
- MANUAL --手动归档模式
- 修改归档日志模式:
- alter database noarchivelog;
- alter database archivelog;
- alter database archivelog manual;
- ----------------通过移动数据文件来均衡文件I/O
- col PHYRDS format 999999999
- col PHYWRTS format 999999999
- col READTIM format 999999999
- col WRITETIM format 999999999
- col name for a60
- set line 9999 pagesize 9999
- select name,phyrds,phywrts,readtim,writetim
- from v$filestat a,v$datafile b
- where a.file#=b.file#
- union all
- select name,PHYRDS,PHYWRTS,READTIM,WRITETIM from v$tempstat a,v$tempfile b where a.file#=b.file#
- order by readtim desc;
- /*查看表最后一次DML时间*/
- select max(ora_rowscn), to_char(scn_to_timestamp(max(ora_rowscn)),'YYYY-MM-DD HH24:MI:SS') from aa;
- select a.*,dbms_rowid.rowid_block_number(rowid),to_char(ora_rowscn),to_char(scn_to_timestamp(ora_rowscn),'YYYY-MM-DD HH24:MI:SS') from AA a;
- SQL> select ename ,sal,dbms_rowid.rowid_block_number(rowid) block#,dbms_rowid.rowid_relative_fno(rowid) as file# from scott.emp where empno=7839;
- ENAME SAL BLOCK# FILE#
- ---------- ---------- ---------- ----------
- KING 5000 32 4
- SQL>
- ------------------------------------------ 日志切换频率
- select b.SEQUENCE#,
- b.FIRST_TIME,
- a.SEQUENCE#,
- a.FIRST_TIME,
- round(((a.FIRST_TIME - b.FIRST_TIME) * 24) * 60, 2) min
- from v$log_history a, v$log_history b
- where a.SEQUENCE# = b.SEQUENCE# + 1
- and b.THREAD# = 1
- order by a.SEQUENCE# desc;
- select sequence#,
- first_time,
- nexttime,
- round(((first_time - nexttime) * 24) * 60, 2) diff
- from (select sequence#,
- first_time,
- lag(first_time) over(order by sequence#) nexttime
- from v$log_history
- where thread# = 1)
- order by sequence# desc;
- select max (first_time) max_first_time,
- to_char (first_time, 'yyyy-mm-dd') day,
- count (recid) count_number,
- count (recid) * 200 size_mb
- from v$log_history
- group by to_char (first_time, 'yyyy-mm-dd')
- order by 1;
- --------------------------------------------------------------------------------------------------- 开启10046事件
- 10046事件级别:
- level 0:禁用SQL_TRACE,等价于SQL_TRACE=FALSE
- level 1:启用标准的sql_trace功能跟踪SQL语句,包括解析、执行、提取、提交和回滚等,等价于SQL_TRACE=TRUE
- level 4:Level 1 +包括变量(bind values)的详细信息
- level 8:Level 1 + 包括等待事件
- level 12:包括绑定变量与等待事件,包含Level 1 + Level 4 + Level 8
- alter session set SQL_TRACE=true;
- alter session set SQL_TRACE=false;
- alter session set events '10046 trace name context forever, level 12';
- alter session set events '10046 trace name context off';
- alter session set events '10046 trace name context off, LEVEL 12';
- --对单个 SQL ID 打开10046事件跟踪
- ALTER SYSTEM SET EVENTS 'SQL_TRACE [SQL:&&SQL_ID] BIND=TRUE,WAIT=TRUE';
- ALTER SYSTEM SET EVENTS 'SQL_TRACE [SQL:C7452AGJ0S0T6] WAIT=TRUE,BIND=TRUE,PLAN_STAT=ALL_EXECUTIONS,LEVEL=12';
- --关闭单个SQL的跟踪命令如下所示:
- ALTER SYSTEM SET EVENTS 'SQL_TRACE [SQL:&&SQL_ID] OFF';
- exec dbms_session.set_sql_trace(true);
- exec dbms_session.set_sql_trace(false);
- exec dbms_session.session_trace_enable(waits=>true,binds=>true);
- exec dbms_session.session_trace_enable();
- -----跟踪其它会话
- SQL> exec dbms_system.set_ev(sid,serial#,10046,12,'');
- SQL> exec dbms_system.set_ev(sid,serial#,10046,0,'');
- exec dbms_system.set_sql_trace_in_session(9,437,true);
- exec dbms_system.set_sql_trace_in_session(9,437,false);
- SQL> exec dbms_monitor.session_trace_enable;
- SQL> 执行sql
- SQL> exec dbms_monitor.session_trace_disable;
- 跟踪其他会话:
- SQL> exec dbms_monitor.session_trace_enable(session_id=>sid,serial_num=>serial#,waits=>true,binds=>true);
- SQL> exec dbms_monitor.session_trace_disable(session_id=>sid,serial_num=>serial#);
- --跟踪当前会话:
- SQL> oradebug setmypid;
- Statement processed.
- SQL> oradebug unlimit;
- Statement processed.
- SQL> oradebug event 10046 trace name context forever,level 12;
- Statement processed.
- SQL> 执行sql
- SQL> oradebug tracefile_name
- SQL> oradebug event 10046 trace name context off;
- Statement processed.
- --跟踪其他会话:
- SQL> select spid,pid2 from v$process
- 2 where addr in (select paddr from v$session where sid=(select distinct sid from v$mystat));
- SPID PID
- ------------ ----------
- 1457 313
- SQL> oradebug setospid 1457;
- Statement processed.
- 或者
- SQL> oradebug setorapid 313;
- Statement processed.
- SQL> oradebug unlimit;
- Statement processed.
- SQL> oradebug event 10046 trace name context forever,level 12;
- Statement processed.
- SQL> oradebug tracefile_name
- SQL> oradebug event 10046 trace name context off;
- Statement processed.
- SELECT a.SID,
- b.SERIAL# ,
- c.SPID
- FROM v$mystat a,
- v$session b ,
- v$process c
- WHERE a.SID = b.SID
- and b.PADDR=c.ADDR
- AND rownum = 1;
- --启用errorstack的跟踪来找到出现问题的SQL语句
- alter session set events '3001 trace name errorstack level 3';
- ---跟踪1438的错误
- alter system set events='1438 trace name errorstack forever,level 3';
- alter system set events='1438 trace name errorstack off';
- 系统默认没有安装dbms_support这个包,可以手动执行$ORACLE_HOME/rdbms/admin/bmssupp.sql脚本来创建该包跟踪当前会话:
- SQL> exec dbms_support.start_trace
- SQL> 执行sql
- SQL> exec dbms_support.stop_trace
- 跟踪其他会话:等待事件+绑定变量,相当于level 12的10046事件。
- SQL> select sid,serial#,username from v$session where ...;
- SQL> exec dbms_support.start_trace_in_session(sid=>sid,serial=>serial#,waits=>true,binds=>true);
- SQL> exec dbms_support.stop_trace_in_session(sid=>sid,serial=>serial#);
- ----select value from v$diag_info where name like '%Default%';
- --转储文件路径
- col TRACE_FILE_NAME format a100
- SELECT d.value || '/' || lower(rtrim(i.instance, chr(0))) || '_ora_' ||
- p.spid || '.trc' trace_file_name
- FROM (SELECT p.spid
- FROM v$mystat m,
- v$session s,
- v$process p
- WHERE m.statistic# = '1'
- AND s.sid = m.sid
- AND p.addr = s.paddr) p,
- (SELECT t.instance
- FROM v$thread t,
- v$parameter v
- WHERE v.name = 'thread'
- AND (v.value = '0' OR to_char(t.thread#) = v.VALUE)) i,
- (SELECT VALUE FROM v$parameter WHERE NAME = 'user_dump_dest') d;
- CREATE OR REPLACE VIEW VW_TRACEFILE_ALL_LHR AS
- SELECT INST_ID,
- SID,
- SERIAL#,
- SPID,
- USERNAME,
- D.VALUE || '/' || LOWER(RTRIM(I.INSTANCE, CHR(0))) || '_ora_' ||
- P.SPID || '.trc' TRACE_FILE_NAME
- FROM (SELECT S.INST_ID, S.SID, S.SERIAL#, P.SPID, S.USERNAME
- FROM GV$SESSION S, GV$PROCESS P
- WHERE P.ADDR = S.PADDR
- AND S.INST_ID = P.INST_ID) P,
- (SELECT T.INSTANCE
- FROM GV$THREAD T, GV$PARAMETER V
- WHERE V.NAME = 'thread'
- AND (V.VALUE = '0' OR TO_CHAR(T.THREAD#) = V.VALUE)) I,
- (SELECT VALUE FROM V$PARAMETER WHERE NAME = 'user_dump_dest') D;
- --创建公共同义词:
- CREATE OR REPLACE PUBLIC SYNONYM SYN_TRACEFILE_ALL_LHR FOR VW_TRACEFILE_ALL_LHR;
- 在Oracle 11g中可以直接查询V$PROCESS获取TRACE文件:
- CREATE OR REPLACE VIEW VW_TRACEFILE_LHR AS
- SELECT S.INST_ID, S.SID, S.SERIAL#, P.SPID, S.USERNAME, P.TRACEFILE
- FROM GV$SESSION S, GV$PROCESS P
- WHERE P.ADDR = S.PADDR
- AND S.INST_ID = P.INST_ID ;
- --创建公共同义词:
- CREATE OR REPLACE PUBLIC SYNONYM SYN_TRACEFILE_LHR FOR VW_TRACEFILE_LHR;
- --------------------------如何生成 systemstate dump systemdump systemstate
- ###sysdba可登陆时
- $sqlplus "/as sysdba"
- SQL>oradebug setmypid
- SQL>--其中266表示dump的级别,不用调整,即把系统当前各个进程正在执行什么、正在等待什么全部抓下来
- SQL>oradebug dump systemstate 266 --oradebug dump systemdump 266;
- SQL>--等上30秒到1分钟
- SQL>oradebug dump systemstate 266
- ###sysdba不可登陆时
- sqlplus -prelim "/as sysdba"
- SQL>oradebug setmypid
- SQL>--其中266表示dump的级别,不用调整,即把系统当前各个进程正在执行什么、正在等待什么全部抓下来
- SQL>oradebug dump systemstate 266
- SQL>--等上30秒到1分钟
- SQL>oradebug dump systemstate 266
- SQL> oradebug tracefile_name
- /u02/app/oracle/diag/rdbms/lhrdb/lhrdb/trace/lhrdb_ora_46679.trc
- ----------HANGANALYZE 分析
- SQL> alter session set events 'immediate trace name HANGANALYZE level 3';
- 或者:
- SQL>ORADEBUG hanganalyze 3 --for 单实例
- ------for RAC 实例
- SQL>ORADEBUG setmypid
- SQL>ORADEBUG setinst all
- SQL>ORADEBUG -g def hanganalyze 3
- The levels are defined as follows:
- 10 Dump all processes (IGN state)
- 5 Level 4 + Dump all processes involved in wait chains (NLEAF state)
- 4 Level 3 + Dump leaf nodes (blockers) in wait chains (LEAF,LEAF_NW,IGN_DMP state)
- 3 Level 2 + Dump only processes thought to be in a hang (IN_HANG state)
- 1-2 Only HANGANALYZE output, no process dump at all
- ----------------------------------------------------------------------------------------------------- 层次查询
- SELECT LEVEL,
- id,
- parentid,
- (lpad(' ', 8 * (LEVEL - 1)) || LEVEL || ':' || l.name) names,
- substr(SYS_CONNECT_BY_PATH(NAME, '=>'), 3),
- connect_by_root(NAME) root,
- decode(LEVEL,
- 2,
- NAME,
- substr(SYS_CONNECT_BY_PATH(NAME, '=>'),
- instr(SYS_CONNECT_BY_PATH(NAME, '=>'), '>', 1, 2) + 1,
- (instr(SYS_CONNECT_BY_PATH(NAME, '=>'), '=', 1, 3) -
- instr(SYS_CONNECT_BY_PATH(NAME, '=>'), '>', 1, 2) - 1))) root2,
- decode(connect_by_isleaf, 1, 'Y', 0, 'N') is_leaf,
- decode(connect_by_iscycle, 1, 'Y', 0, 'N') is_leaf
- FROM xb_location l
- START WITH l.parentid IS NULL
- CONNECT BY nocycle PRIOR l.id = l.parentid;
- ----------------------------------------------------------------------------------------------------- 启用系统触发器
- alter system set "_system_trig_enabled"=true; --默认
- alter system reset "_system_trig_enabled" scope=spfile sid='*';
- ----------------------------------------------------------------------------------------------------- 闪回
- select * from user_recyclebin t where t.original_name LIKE'TMP_AB%';
- select * from dba_recyclebin;
- --ddl
- flashback table TMP_AB to before drop rename to old_t;
- flashback table "BIN$B/HqKSpfWrvgU4I7qMATlg==$0" to before drop;
- --dml
- alter table old_t enable row movement;
- flashback table old_t to timestamp to_date('2012/11/13 16:16:40','YYYY/MM/DD HH24:MI/SS');
- --insert into xb_port
- SELECT *
- FROM xb_port AS OF TIMESTAMP TO_TIMESTAMP('2013-04-25 16:53:28', 'YYYY-MM-DD HH24:MI:SS')
- WHERE id = 307247374 ;
- commit;
- SELECT timestamp_to_scn(TO_TIMESTAMP('2012-11-13 16:25:17',
- 'YYYY-MM-DD HH24:MI:SS')),
- to_char(DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER) AS SCN
- FROM dual;
- ----查询
- SELECT versions_starttime,
- versions_startscn,
- versions_endtime,
- versions_endscn,
- versions_xid,
- versions_operation,
- id,
- NAME
- FROM xb_location versions BETWEEN TIMESTAMP to_timestamp('2012-11-13 15:10:40', 'yyyy-mm-dd hh24:mi:ss') AND to_timestamp(to_char(SYSDATE, 'yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd hh24:mi:ss')
- WHERE versions_xid IS NOT NULL
- ORDER BY versions_starttime;
- SELECT versions_starttime,
- versions_startscn,
- versions_endtime,
- versions_endscn,
- versions_xid,
- versions_operation,
- id,
- NAME
- FROM xb_location versions BETWEEN scn minvalue AND maxvalue
- WHERE versions_xid IS NOT NULL
- ORDER BY versions_starttime;
- ------------------------------------------------------- undo表空间
- --1、系统段 2、非系统段 3、表空间脱机后的defered段
- SELECT d.segment_type,
- COUNT(1)
- FROM dba_segments d
- GROUP BY d.segment_type;
- select * from dba_segments d where d.segment_type in ('TYPE2 UNDO','ROLLBACK') ;
- select * from dba_rollback_segs;
- select * from dba_undo_extents;
- select * from v$transaction;
- select * from v$rollstat;
- select * from v$rollname;
- select * from dba_extents d where d.segment_name='_SYSSMU25_17381587$';
- select * from v$undostat; ---mount状态可查
- --ssolderrcnt : snapshot too old error count
- select status,count(*) from dba_rollback_segs group by status;
- SELECT d.TABLESPACE_NAME,
- d.STATUS,
- SUM(bytes) / 1024 / 1024
- FROM dba_undo_extents d
- GROUP BY d.TABLESPACE_NAME,
- d.status
- ORDER BY d.TABLESPACE_NAME;
- SELECT r.tablespace_name,
- r.status "Status",
- r.segment_name "Name",
- s.extents "Extents",
- TO_CHAR((s.bytes / 1024 / 1024), '99999990.000') "SizeM",
- s.segment_type
- FROM dba_rollback_segs r,
- dba_segments s
- WHERE r.segment_name = s.segment_name
- AND s.segment_type IN ('ROLLBACK', 'TYPE2 UNDO')
- ORDER BY r.tablespace_name,
- 5 DESC;
- ----估算undo需要的大小
- SELECT (UR * (UPS * DBS)) AS "Bytes" FROM (SELECT value AS UR FROM v$parameter WHERE name = 'undo_retention'), (SELECT undoblks/((end_time-begin_time)*86400) AS UPS FROM v$undostat WHERE undoblks = (SELECT MAX(undoblks) FROM v$undostat)), (SELECT block_size AS DBS FROM dba_tablespaces WHERE tablespace_name = (SELECT UPPER(value) FROM v$parameter WHERE name = 'undo_tablespace'));
- -------------------- 已用大小
- set line 9999
- select s.sid,
- s.serial#,
- s.sql_id,
- v.usn,
- segment_name,
- r.status,
- v.rssize / 1024 / 1024 mb
- From dba_rollback_segs r, v$rollstat v, v$transaction t, v$session s
- Where r.segment_id = v.usn
- and v.usn = t.xidusn
- and t.addr = s.taddr
- order by segment_name;
- ------undo总大小
- SET ECHO OFF
- SET FEEDBACK 6
- SET HEADING ON
- SET LINESIZE 180
- SET PAGESIZE 50000
- SET TERMOUT ON
- SET TIMING OFF
- SET TRIMOUT ON
- SET TRIMSPOOL ON
- SET VERIFY OFF
- COLUMN status FORMAT a9 HEADING 'Status'
- COLUMN name FORMAT a30 HEADING 'Tablespace Name'
- COLUMN type FORMAT a15 HEADING 'TS Type'
- COLUMN extent_mgt FORMAT a10 HEADING 'Ext. Mgt.'
- COLUMN segment_mgt FORMAT a10 HEADING 'Seg. Mgt.'
- COLUMN ts_size FORMAT 9,999,999,999,999 HEADING 'Tablespace Size'
- COLUMN used FORMAT 9,999,999,999,999 HEADING 'Used (in bytes)'
- COLUMN free FORMAT 9,999,999,999,999 HEADING 'Free (in bytes)'
- COLUMN pct_used FORMAT 999 HEADING 'Pct. Used'
- SELECT
- d.status status
- , d.tablespace_name name
- , d.contents type
- , d.extent_management extent_mgt
- , d.segment_space_management segment_mgt
- , NVL(a.bytes, 0) ts_size
- , NVL(a.bytes - NVL(f.bytes, 0), 0) used
- , NVL((a.bytes - NVL(f.bytes, 0)) / a.bytes * 100, 0) pct_used
- FROM
- sys.dba_tablespaces d
- , ( select tablespace_name, sum(bytes) bytes
- from dba_data_files
- group by tablespace_name
- ) a
- , ( select tablespace_name, sum(bytes) bytes
- from dba_free_space
- group by tablespace_name
- ) f
- WHERE
- d.tablespace_name = a.tablespace_name(+)
- AND d.tablespace_name = f.tablespace_name(+)
- AND d.tablespace_name like '%UNDO%'
- ORDER BY
- 2;
- --数据文件管理参数: db_create_file_dest
- CREATE TABLESPACE test DATAFILE SIZE 10m;
- alter database datafile 3 resize 5G;
- alter database tempfile 1 resize 2G;
- alter database datafile 3 autoextend off;
- alter database tempfile 1 autoextend off;
- -------------- 重建undo表空间
- create undo tablespace undotbs2 datafile '+DATA' size 100m reuse autoextend off;
- alter system set undo_tablespace=undotbs2;
- drop tablespace undotbs1 including contents and datafiles;
- create undo tablespace undotbs1 datafile '+DATA' size 100m reuse autoextend off;
- alter system set undo_tablespace=undotbs1;
- alter database datafile 3 autoextend off;
- alter database tempfile 1 autoextend off;
- create undo tablespace undotbs2 datafile '+DATA' size 5M;
- alter system set undo_tablespace=undotbs2;
- alter tablespace undotabs2 retention guarantee;
- select t.rowid,dbms_rowid.rowid_relative_fno(rowid) fno,dbms_rowid.rowid_block_number(rowid) bno, t.owner,t.object_name from t ;
- alter system dump datafile 4 block 6643;
- select * from vw_mysession_lhr;
- UBA : undo block address
- select * from v$obsolete_parameter;
- alter database create datafile 3 as '/u03/app/oracle/oradata/ora1024g/undotbs01.dbf' size 50m;
- ------- undo
- alter system set "_offline_rollback_segments"=true scope=spfile;
- alter system set "_offline_rollback_segments"=false scope=spfile; ---默认
- alter system reset "_offline_rollback_segments" scope=spfile sid='*';
- *._offline_rollback_segments=('_SYSSMU154_3691636531$','_SYSSMU155_3686385895$','_SYSSMU156_3796802683$','_SYSSMU157_2723916652$','_SYSSMU158_1435464080$')
- _offline_rollback_segment='_SYSSMU3$'
- _newsort_enabled --排序
- -------- 如果undo为recover状态的话还需要加如下参数
- alter system set "_corrupted_rollback_segments"='_SYSSMU1$','_SYSSMU2$','_SYSSMU3$','_SYSSMU4$','_SYSSMU5$','_SYSSMU6$','_SYSSMU7$','_SYSSMU8$','_SYSSMU9$','_SYSSMU10$' scope=spfile;
- alter system reset "_corrupted_rollback_segments" scope=spfile sid='*';
- alter system set "_corrupted_rollback_segments"='_SYSSMU1$','_SYSSMU2$','_SYSSMU3$','_SYSSMU4$','_SYSSMU5$','_SYSSMU6$','_SYSSMU7$','_SYSSMU8$','_SYSSMU9$','_SYSSMU10$','_SYSSMU11$','_SYSSMU12$','_SYSSMU13$','_SYSSMU14$','_SYSSMU15$','_SYSSMU16$','_SYSSMU17$','_SYSSMU18$','_SYSSMU19$','_SYSSMU20$' scope=spfile;
- *._corrupted_rollback_segments=('_SYSSMU10_3271578125','_SYSSMU11_125382609','_SYSSMU1_1240252155','_SYSSMU12_2245433549','_SYSSMU13_3242268464','_SYSSMU14_44821983','_SYSSMU15_1872739176','_SYSSMU16_1376564431','_SYSSMU17_1839632768','_SYSSMU18_3088942417','_SYSSMU19_2867910983','_SYSSMU20_948290921','_SYSSMU2_111974964','_SYSSMU3_4004931649','_SYSSMU4_1126976075','_SYSSMU5_2968973961','_SYSSMU6_2060978448','_SYSSMU7_4222772309','_SYSSMU8_3612859353','_SYSSMU9_2370500926')
- drop rollback segment "drop rollback segment";
- drop rollback segment "_SYSSMU154_3691636531$";
- ---- 查询undo段
- strings /u01/app/oracle/oradata/ora11g/system01.dbf | grep _SYSSMU | sort -u >/tmp/system.txt
- more /tmp/system.txt
- 注意:通过system01.dbf查出了,正在使用的undo segment,以上按使用时间做了排序,注意只选择那些排在最前面的(相同回滚段);默认每个undo tablespace 会应用10个undo segments。
- ------- 不能创建undo文件(ORA-01178错误),无备份的情况下采用隐含参数启动数据库
- set line 9999
- col name format a100
- select file#, name,status,enabled from v$datafile;
- select * from v$recover_file;
- alter system set undo_management=manual scope=spfile;
- alter database datafile 3 offline;
- alter system set undo_tablespace=SYSTEM scope=spfile;
- alter system set "_offline_rollback_segments"=true scope=spfile;
- ! strings '/u01/app/oracle/oradata/orcltest/system01.dbf' | grep _SYSSMU | sort -u
- alter system set
- "_corrupted_rollback_segments"='_SYSSMU3_4004931649$','_SYSSMU3_4160240979$','_SYSSMU34_2573821980$','_SYSSMU35_3476245049$','_SYSSMU36_353473384$','_SYSSMU37_682878819$','_SYSSMU38_2521239011$','_SYSSMU39_1467520375$','_SYSSMU40_753689919$','_SYSSMU4_1126976075$','_SYSSMU4_348804819$','_SYSSMU5_2968973961$','_SYSSMU5_4011504098$','_SYSSMU6_2060978448$','_SYSSMU6_3654194381$','_SYSSMU7_4222772309$','_SYSSMU7_894058185$','_SYSSMU8_3612859353$','_SYSSMU8_87803851$','_SYSSMU9_2370500926$','_SYSSMU9_2370500926$','_SYSSMU9_3945653786$' scope=spfile;
- shutdown immediate;
- startup mount;
- alter database open;
- select segment_name,status,tablespace_name from dba_rollback_segs;
- drop tablespace UNDOTBS1;
- create undo tablespace undotbs1 datafile '/u01/app/oracle/oradata/orcltest/undotbs01.dbf' size 50m autoextend on;
- alter system set undo_tablespace=UNDOTBS1 scope=spfile;
- alter system set undo_management=auto scope=spfile;
- alter system reset "_offline_rollback_segments" scope=spfile sid='*';
- alter system reset "_corrupted_rollback_segments" scope=spfile sid='*';
- shutdown immediate;
- startup
- ---注意回滚段的命名规范:
- 11g: _SYSSMU1_1189172979$、 _SYSSMU2_1189172979$ 。。。_SYSSMU10_1189172979$
- 10g、9i:_SYSSMU1$、_SYSSMU2$、_SYSSMU3$ 。。。。_SYSSMU10$
- 8i 为rollbackspace 即RBS空间:RBS0、RBS1、RBS2 。。。。RBS6
- 7.3 :RB1、RB2.。。。。RB6
- *.LOCAL_LISTENER='(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=22.188.194.64)(PORT=1523)))'
- *.LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=22.188.194.64)(PORT=1522))';
- ALTER SYSTEM SET LOCAL_LISTENER='(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=22.188.194.64)(PORT=1523)))';
- ALTER SYSTEM SET LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=22.188.194.64)(PORT=1522))';
- ALTER SYSTEM SET LOCAL_LISTENER='(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=22.188.194.64)(PORT=1523)))','(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=22.188.194.64)(PORT=1522)))';
- ALTER SYSTEM SET LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=22.188.194.64)(PORT=1522))','(ADDRESS=(PROTOCOL=TCP)(HOST=22.188.194.64)(PORT=1523))';
- ALTER SYSTEM REGISTER;
- ------------ 数据文件自动扩展
- alter database datafile 5 autoextend on next 5M;
- 如果是bigfile可以采用: ALTER TABLESPACE TBS2 AUTOEXTEND ON NEXT 20G;
- 修改表空间数据文件大小为不限制的语句为:
- alter database datafile '/oradata/orcl/demo01.dbf' autoextend on maxsize unlimited;
- 创建表空间数据文件大小为不限制的语句为:
- create tablespace demo2 datafile '/oradata/orcl/demo201.dbf' size 10M autoextend on maxsize unlimited;
- ----取消已有数据文件的自动增长方式
- alter database datafile 'i:\oracle\oradata\dmusertbs01.dbf' autoextend off;
- ------------ 根据文件号和块号查询数据库对象
- SELECT tablespace_name,
- segment_type,
- owner,
- segment_name,
- partition_name
- FROM dba_extents
- WHERE file_id = &file_id
- AND &block_id BETWEEN block_id AND block_id + blocks - 1
- ;
- SELECT ROWID,
- dbms_rowid.rowid_object(ROWID) object_id,
- dbms_rowid.rowid_relative_fno(ROWID) file_id,
- dbms_rowid.rowid_block_number(ROWID) block_id,
- d.*
- FROM scott.SALGRADE d
- WHERE dbms_rowid.rowid_block_number(ROWID) = 163
- AND dbms_rowid.rowid_relative_fno(ROWID) = 4;
- SELECT DBMS_ROWID.ROWID_CREATE(1,
- (SELECT DATA_OBJECT_ID
- FROM DBA_OBJECTS
- WHERE OBJECT_ID = ROW_WAIT_OBJ#),
- ROW_WAIT_FILE#,
- ROW_WAIT_BLOCK#,
- ROW_WAIT_ROW#),
- A.ROW_WAIT_OBJ#,
- A.ROW_WAIT_FILE#,
- A.ROW_WAIT_BLOCK#,
- A.ROW_WAIT_ROW#,
- (SELECT D.OWNER || '.' || D.OBJECT_NAME
- FROM DBA_OBJECTS D
- WHERE OBJECT_ID = ROW_WAIT_OBJ#) OBJECT_NAME
- FROM V$SESSION A
- WHERE A.ROW_WAIT_OBJ# <> -1;
- SELECT * FROM SYS.COM$ A WHERE A.ROWID='AAAACJAABAAAARGAAA';
- ---------------------- 删除主键及主键索引
- alter table table_name drop primary key cascade drop index;
- alter table table_name drop constraint constraint_name cascade drop index;
- --------------------------------------------------------- awr
- ----- 生成awr
- select * from table(dbms_workload_repository.awr_report_html(3424884828,1,1161,1165));
- @$ORACLE_HOME/rdbms/admin/awrrpt.sql;
- ----视图
- select * from DBA_HIST_WR_CONTROL;
- select * from DBA_HIST_SNAPSHOT;
- select * from DBA_HIST_ACTIVE_SESS_HISTORY;
- select * from DBA_HIST_ASH_SNAPSHOT;
- select * from DBA_HIST_SEG_STAT;
- select * from DBA_HIST_SQLBIND;
- select * from DBA_HIST_SQLSTAT;
- select * from DBA_HIST_SQLTEXT;
- select * from DBA_HIST_SQL_BIND_METADATA;
- select * from DBA_HIST_SQL_PLAN;
- --------- sql部分
- select &begin_snap || '~' || &end_snap snap_id_range,
- (SELECT round(sum(db_time) / 1000000 / 60, 2) db_time_m
- FROM (select lead(a.value, 1, null) over(partition by b.startup_time order by b.end_interval_time) - a.value db_time
- from dba_hist_sys_time_model a, dba_hist_snapshot b
- where a.snap_id = b.snap_id
- and a.dbid = b.dbid
- and a.instance_number = b.instance_number
- and a.stat_name = 'DB time'
- and a.snap_id between &begin_snap and &end_snap)
- where db_time IS NOT NULL) "db_time(m)",
- round(nvl((sqt.elap / 1000000), to_number(null)), 2) "Elapsed Time (s)",
- round(nvl((sqt.cput / 1000000), to_number(null)), 2) "CPU Time (s)",
- round(nvl((sqt.iowait_delta / 1000000), to_number(null)), 2) "User I/O Time (s)",
- round(nvl((sqt.buffer_gets_delta), to_number(null)), 2) "Buffer Gets",
- round(nvl((sqt.disk_reads_delta), to_number(null)), 2) "Physical Reads",
- round(nvl((sqt.rows_processed_delta), to_number(null)), 2) "Rows Processed",
- round(nvl((sqt.parse_calls_delta), to_number(null)), 2) "Parse Calls",
- sqt.exec executions,
- round(decode(sqt.exec,
- 0,
- to_number(null),
- (sqt.elap / sqt.exec / 1000000)),
- 2) "Elapsed Time per Exec (s)",
- round(decode(sqt.exec,
- 0,
- to_number(null),
- (sqt.cput / sqt.exec / 1000000)),
- 2) "CPU per Exec (s)",
- round(decode(sqt.exec,
- 0,
- to_number(null),
- (sqt.iowait_delta / sqt.exec / 1000000)),
- 2) "UIO per Exec (s)",
- round(sqt.cput * 100 / sqt.elap, 2) "%CPU",
- round(sqt.iowait_delta * 100 / sqt.elap, 2) "%IO",
- round(sqt.elap * 100 /
- (SELECT sum(db_time)
- FROM (select lead(a.value, 1, null) over(partition by b.startup_time order by b.end_interval_time) - a.value db_time
- from dba_hist_sys_time_model a, dba_hist_snapshot b
- where a.snap_id = b.snap_id
- and a.dbid = b.dbid
- and a.instance_number = b.instance_number
- and a.stat_name = 'DB time'
- and a.snap_id between &begin_snap and &end_snap)
- where db_time IS NOT NULL),
- 2) "elapsed/dbtime",
- sqt.sql_id,
- parsing_schema_name,
- (decode(sqt.module, null, null, sqt.module)) module,
- nvl((select dbms_lob.substr(st.sql_text, 2000, 1)
- from dba_hist_sqltext st
- WHERE st.sql_id = sqt.sql_id
- and st.dbid = sqt.dbid),
- (' ** SQL Text Not Available ** ')) sql_text
- from (select sql_id,
- a.dbid,
- a.parsing_schema_name,
- max(module || '--' || a.action) module,
- sum(elapsed_time_delta) elap,
- sum(cpu_time_delta) cput,
- sum(executions_delta) exec,
- SUM(a.iowait_delta) iowait_delta,
- sum(a.buffer_gets_delta) buffer_gets_delta,
- sum(a.disk_reads_delta) disk_reads_delta,
- sum(a.rows_processed_delta) rows_processed_delta,
- sum(a.parse_calls_delta) parse_calls_delta
- from dba_hist_sqlstat a
- where &begin_snap < snap_id
- and snap_id <= &end_snap
- group by sql_id, parsing_schema_name, a.dbid) sqt
- order by nvl(sqt.elap, -1) desc, sqt.sql_id
- ;
- --------- 信息
- select s.snap_date,
- snap_time_range,
- t.snap_id + 1 snap_id,
- decode(s.redosize, null, '--shutdown or end--', s.currtime) "TIME",
- startup_time,
- to_char(round(s.seconds / 60, 2)) "elapse(min)",
- round(t.db_time / 1000000 / 60, 2) "DB time(min)",
- s.redosize redo,
- round(s.redosize / s.seconds, 2) "redo/s",
- round(s.redosize / s.transactions, 2) "redo/t",
- s.logicalreads logical,
- round(s.logicalreads / s.seconds, 2) "logical/s",
- round(s.logicalreads / s.transactions, 2) "logical/t",
- physicalreads physical,
- round(s.physicalreads / s.seconds, 2) "phy/s",
- round(s.physicalreads / s.transactions, 2) "phy/t",
- s.executes execs,
- round(s.executes / s.seconds, 2) "execs/s",
- round(s.executes / s.transactions, 2) "execs/t",
- s.parse,
- round(s.parse / s.seconds, 2) "parse/s",
- round(s.parse / s.transactions, 2) "parse/t",
- s.hardparse,
- round(s.hardparse / s.seconds, 2) "hardparse/s",
- round(s.hardparse / s.transactions, 2) "hardparse/t",
- s.transactions trans,
- round(s.transactions / s.seconds, 2) "trans/s"
- from (select curr_redo - last_redo redosize,
- curr_logicalreads - last_logicalreads logicalreads,
- curr_physicalreads - last_physicalreads physicalreads,
- curr_executes - last_executes executes,
- curr_parse - last_parse parse,
- curr_hardparse - last_hardparse hardparse,
- curr_transactions - last_transactions transactions,
- round(((currtime + 0) - (lasttime + 0)) * 3600 * 24, 0) seconds,
- to_char(currtime, 'yyyy-mm-dd') snap_date,
- to_char(currtime, 'hh24:mi') currtime,
- to_char(lasttime, 'YYYY-MM-DD HH24:MI') || '~' ||
- to_char(currtime, 'YYYY-MM-DD HH24:MI') snap_time_range,
- currsnap_id endsnap_id,
- to_char(startup_time, 'yyyy-mm-dd hh24:mi:ss') startup_time
- from (select a.redo last_redo,
- a.logicalreads last_logicalreads,
- a.physicalreads last_physicalreads,
- a.executes last_executes,
- a.parse last_parse,
- a.hardparse last_hardparse,
- a.transactions last_transactions,
- lead(a.redo, 1, null) over(partition by b.startup_time order by b.end_interval_time) curr_redo,
- lead(a.logicalreads, 1, null) over(partition by b.startup_time order by b.end_interval_time) curr_logicalreads,
- lead(a.physicalreads, 1, null) over(partition by b.startup_time order by b.end_interval_time) curr_physicalreads,
- lead(a.executes, 1, null) over(partition by b.startup_time order by b.end_interval_time) curr_executes,
- lead(a.parse, 1, null) over(partition by b.startup_time order by b.end_interval_time) curr_parse,
- lead(a.hardparse, 1, null) over(partition by b.startup_time order by b.end_interval_time) curr_hardparse,
- lead(a.transactions, 1, null) over(partition by b.startup_time order by b.end_interval_time) curr_transactions,
- b.end_interval_time lasttime,
- lead(b.end_interval_time, 1, null) over(partition by b.startup_time order by b.end_interval_time) currtime,
- lead(b.snap_id, 1, null) over(partition by b.startup_time order by b.end_interval_time) currsnap_id,
- b.startup_time
- from (select snap_id,
- dbid,
- instance_number,
- sum(decode(stat_name, 'redo size', value, 0)) redo,
- sum(decode(stat_name,
- 'session logical reads',
- value,
- 0)) logicalreads,
- sum(decode(stat_name,
- 'physical reads',
- value,
- 0)) physicalreads,
- sum(decode(stat_name, 'execute count', value, 0)) executes,
- sum(decode(stat_name,
- 'parse count (total)',
- value,
- 0)) parse,
- sum(decode(stat_name,
- 'parse count (hard)',
- value,
- 0)) hardparse,
- sum(decode(stat_name,
- 'user rollbacks',
- value,
- 'user commits',
- value,
- 0)) transactions
- from dba_hist_sysstat
- where stat_name in
- ('redo size',
- 'session logical reads',
- 'physical reads',
- 'execute count',
- 'user rollbacks',
- 'user commits',
- 'parse count (hard)',
- 'parse count (total)')
- group by snap_id, dbid, instance_number) a,
- dba_hist_snapshot b
- where a.snap_id = b.snap_id
- and a.dbid = b.dbid
- and a.instance_number = b.instance_number
- order by end_interval_time)) s,
- (select lead(a.value, 1, null) over(partition by b.startup_time order by b.end_interval_time) - a.value db_time,
- lead(b.snap_id, 1, null) over(partition by b.startup_time order by b.end_interval_time) endsnap_id,
- b.snap_id
- from dba_hist_sys_time_model a, dba_hist_snapshot b
- where a.snap_id = b.snap_id
- and a.dbid = b.dbid
- and a.instance_number = b.instance_number
- and a.stat_name = 'DB time') t
- where s.endsnap_id = t.endsnap_id
- order by s.snap_date desc, snap_id desc, time asc;
- ----主机信息
- SELECT s.snap_id,
- DB_NAME,
- s.dbid,
- INSTANCE_NAME,
- s.instance_number,
- s.startup_time,
- Version Release,
- PARALLEL RAC,
- HOST_NAME,
- di.platform_name,
- v.cpus CPUS,
- v.cores,
- v.sockets,
- v.Memory "Memory (GB)"
- FROM DBA_HIST_DATABASE_INSTANCE di,
- DBA_HIST_SNAPSHOT s,
- (SELECT snap_id,
- dbid,
- instance_number,
- SUM(CPUs) CPUs,
- SUM(Cores) Cores,
- SUM(Sockets) Sockets,
- SUM(Memory) Memory
- FROM (SELECT o.snap_id,
- o.dbid,
- o.instance_number,
- decode(o.stat_name, 'NUM_CPUS', o.value) CPUs,
- decode(o.stat_name, 'NUM_CPU_CORES', o.value) Cores,
- decode(o.stat_name, 'NUM_CPU_SOCKETS', o.value) Sockets,
- decode(o.stat_name,
- 'PHYSICAL_MEMORY_BYTES',
- trunc(o.value / 1024 / 1024 / 1024, 2)) Memory
- FROM dba_hist_osstat o
- WHERE o.stat_name IN
- ('NUM_CPUS',
- 'NUM_CPU_CORES',
- 'NUM_CPU_SOCKETS',
- 'PHYSICAL_MEMORY_BYTES'))
- GROUP BY snap_id,
- dbid,
- instance_number) v
- WHERE s.instance_number = di.instance_number
- AND s.startup_time = di.startup_time
- AND s.dbid = di.dbid
- AND s.snap_id = v.snap_id
- AND s.dbid = s.dbid
- AND s.instance_number = v.instance_number;
- ------------------------------------------------------------------------------------------ 临时表
- 基于事务: create global temporary table lhr.cgtt_temp_sw on commit delete rows as select * from dba_objects;
- 创建索引:create index ind_cgtt_object_ID on cgtt_temp_sw(object_ID);
- 基于会话: create global temporary table lhr.cgtt_temp_hh on commit preserve rows as select * from dba_objects;
- 创建索引:需重开会话: create index ind_cgtt_object_ID2 on cgtt_temp_hh(object_ID);
- select * from VW_TEMP_OBJECT_LHR;
- Select se.username,
- se.sid,
- su.extents,
- (su.blocks *
- to_number((select rtrim(value)
- from v$parameter p
- WHERE p.NAME = 'db_block_size'))) / 1024 / 1024 as Size_m,
- tablespace,
- segtype,
- (SELECT a.SQL_TEXT
- FROM v$sql a
- WHERE a.SQL_ID = su.SQL_ID
- and rownum = 1) SQL_TEXT
- from v$sort_usage su, v$session se
- where su.session_addr = se.saddr
- order by se.username, se.sid;
- -------------------------------------- catalog库
- SQL> create tablespace rman_ts datafile '/lhrdata/u01/app/oracle/oradata/orcllinux/rman.dbf' size 1G;
- 表空间已创建。
- SQL> create user rc identified by lhr default tablespace rman_ts quota unlimited on rman_ts;
- 用户已创建。
- SQL> grant recovery_catalog_owner to rc;---包含了connect的角色权限
- 授权成功。
- SQL> grant RESOURCE to rc;
- 授权成功。
- SQL> HOST
- [oracle@lhr_linux ~]$ rman catalog rc/lhr
- 恢复管理器: Release 11.2.0.1.0 - Production on 星期四 4月 10 15:08:22 2014
- Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
- 连接到恢复目录数据库
- RMAN> create catalog tablespace rman_ts;
- 恢复目录已创建
- RMAN> connect target /
- 连接到目标数据库: ORCLLINU (DBID=534927627)
- RMAN> register database;
- 注册在恢复目录中的数据库
- 正在启动全部恢复目录的 resync
- 完成全部 resync
- RMAN> exit
- ---------- 用户profile
- alter user lhr profile default;
- alter system set resource_limit=true;
- alter profile default limit PASSWORD_LIFE_TIME UNLIMITED;
- alter profile default limit FAILED_LOGIN_ATTEMPTS UNLIMITED;
- /oracle/app/oraInventory/ContentsXML/inventory.xml
- oracle执行:$ORACLE_HOME/oui/bin/attachHome.sh
- -------------------------------------------- 卸载软件 GRID
- kill -9 `ps -ef|grep d.bin| grep -v grep | awk '{print $2}'`
- 卸载GRID软件,grid用户执行:$ORACLE_HOME/deinstall/deinstall
- 卸载ORACLE软件,oracle用户执行:$ORACLE_HOME/deinstall/deinstall
- 在Linux下手工卸载RAC的步骤:
- ① rm -rf /etc/ora*
- ② rm -rf /var/tmp/.oracle
- ③ 修改/etc/inittab删除以下三行
- h1:2:respawn:/etc/init.evmd run >/dev/null 2>&1 </dev/null
- h2:2:respawn:/etc/init.cssd fatal >/dev/null 2>&1 </dev/null
- h3:2:respawn:/etc/init.crsd run >/dev/null 2>&1 </dev/null
- ④ rm -rf /tmp/*
- ⑤ rm -rf /u01/app/grid/* ---删除GRID目录
- ⑥ rm -rf /u01/app/oracle/* --删除ORACLE目录
- ⑦ rm -rf /u01/app/oraInventory/*
- ⑧ 清除OCR、Voting及数据库使用过的磁盘
- dd if=/dev/zero of=/dev/raw/raw1 bs=104857600 count=1
- dd if=/dev/zero of=/dev/raw/raw2 bs=104857600 count=1
- 最后,重启2个节点*/
- -------重建路径
- mkdir -p /u01/app/oracle
- mkdir -p /u01/app/grid
- mkdir -p /u01/app/12.1.0/grid
- mkdir -p /u01/app/oracle/product/12.1.0/dbhome_1
- chown -R grid:oinstall /u01/app/grid
- chown -R grid:oinstall /u01/app/12.1.0
- chown -R oracle:oinstall /u01/app/oracle
- chmod -R 775 /u01
- mkdir -p /u01/app/oraInventory
- chown -R grid:oinstall /u01/app/oraInventory
- chmod -R 775 /u01/app/oraInventory
- 在Windows下手工卸载RAC的步骤:
- ① 开始->设置->控制面板->管理工具->服务,或运行services.msc打开服务,停止所有Oracle服务
- ② 删除Oracle和GRID的安装目录
- ③ 删除C:\Program Files\Oracle目录
- ④ 删除C:\windows\temp和C:\temp以及C:\Users\Administrator\Oracle下的文件
- ⑤ 运行regedit,打开注册表编辑器,选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE,删除该项
- ⑥ 运行regedit,打开注册表编辑器,选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services,滚动这个列表,删除所有Oracle开头的项
- ⑦ 运行regedit,打开注册表编辑器,选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application,删除所有Oracle入口
- ⑧ 开始->设置->控制面板->系统->高级->环境变量,删除环境变量CLASSPATH和PATH中有关Oracle的设定
- ⑨ 从桌面上、STARTUP(启动)组、程序菜单中,删除所有有关Oracle的组和图标
- ⑩ 重新启动计算机,重起后才能完全删除Oracle所在目录
- 若个别文件不能删除,则说明该文件与某个Windows服务相关联,可以先把相关联的服务停止后再删除。
- -- 加入常用命令
- vi /etc/profile
- export GRID_HOME=/u01/app/12.1.0/grid
- export PATH=$PATH:$GRID_HOME/bin
- ---------------- 重新执行root.sh
- ---kill -9 `ps -ef|grep d.bin| grep -v grep | awk '{print $2}'`
- ---$ORACLE_HOME 为 GRID_HOME的路径,执行之前最好先手动把数据库资源关闭
- 日志地址:$ORACLE_HOME/cfgtoollogs/crsconfig/
- 重置的日志文件:hadelete.log
- root.sh脚本日志:rootcrs_rac2.log
- --------------① 脚本方式
- ---执行失败,重新执行root.sh脚本
- $ORACLE_HOME/crs/install/crsconfig_params
- $ORACLE_HOME/crs/install/rootcrs.pl -deconfig -force -verbose
- --$ORACLE_HOME/crs/install/rootcrs.pl -deconfig -force -verbose -lastnode -keepdg
- dd if=/dev/zero of=/dev/rhdiskN bs=1024k count=1024
- lquerypv -h /dev/rhdisk5
- $ORACLE_HOME/root.sh
- $ORACLE_HOME/crs/install/rootcrs.pl -deconfig -force -verbose
- --$ORACLE_HOME/crs/install/rootcrs.pl -deconfig -force -verbose -lastnode -keepdg
- $ORACLE_HOME/root.sh
- ---$ORACLE_HOME/crs/install/rootcrs.pl -deconfig -force -verbose执行完成之后需要删除如下的文件
- ls -l $ORACLE_BASE/Clusterware/ckptGridHA* */
- find $ORACLE_HOME/gpnp/* -type f */
- find $ORACLE_HOME/gpnp/* -type f -exec rm -rf {} \; */
- --------------② 界面方式
- ---------------删除两节点crsconfig_params中的DATA1和磁盘 界面方式
- $ORACLE_HOME/crs/install/crsconfig_params
- ASM_DISK_GROUP=DATA1
- ASM_DISKS=/dev/rhdisk5
- --root
- $ORACLE_HOME/crs/install/rootcrs.pl -deconfig -force -verbose
- -- GRID
- export DISPLAY=22.188.216.132:0.0
- $ORACLE_HOME/crs/config/config.sh
- CRS-4124: Oracle High Availability Services startup failed. -- 报错
- CRS-4000: Command Start failed, or completed with errors.
- ohasd failed to start: Inappropriate ioctl for device
- ohasd failed to start: Inappropriate ioctl for device at /u01/app/11.2.0/grid/crs/install/roothas.pl line 296.
- /bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
- /nfs/software/db/install/clone/sh/11g/grid/runcluvfy.sh stage -pre crsinst -n ZFLHRDB1,ZFLHRDB2 -verbose -fixup
- $ORACLE_HOME/bin/cluvfy stage -pre crsinst -n all -verbose -fixup
- find . -name runcluvfy.sh
- ---GRID_HOME权限修复
- 方法1:11gR2可以deconfig crs的配置,然后重新跑root.sh即可。重新跑root.sh脚本并不影响数据库,所以无需担心(个人推荐的一种方式).
- $ORACLE_HOME/crs/install/rootcrs.pl -deconfig -force -verbose
- $ORACLE_HOME/root.sh
- 方法2:根据Mos文档提供的建议通过 $GRID_HOME/crs/install/rootcrs.pl -init 或 roothas.pl -init进行解决. rootcrs.pl –init是在PSU>11.2.0.3.6下执行的,如果PSU<11.2.0.3.6可以执行如下两条命令来实现同样的效果
- <GRID_HOME>/crs/install/rootcrs.pl -unlock
- <GRID_HOME>/crs/install/rootcrs.pl -patch
- For 11.2:
- For clustered Grid Infrastructure, as root user
- # cd <GRID_HOME>/crs/install/
- # ./rootcrs.pl -init
- For Standalone Grid Infrastructure, as root user
- # cd <GRID_HOME>/crs/install/
- # ./roothas.pl -init
- For 12c:
- For clustered Grid Infrastructure, as root user
- # cd <GRID_HOME>/crs/install/
- # ./rootcrs.sh -init
- For Standalone Grid Infrastructure, as root user
- # cd <GRID_HOME>/crs/install/
- # ./roothas.sh -init
- ---查看psu
- /nfs/software/db/install/chk/chkora.sh
- opatch lsinventory -bugs_fixed | grep 'PSU'
- opatch lsinv
- [ZFCASSDB1:grid]:/home/grid>opatch lspatches
- 13343438;Database Patch Set Update : 11.2.0.3.1 (13343438)
- 13348650;Grid Infrastructure Patch Set Update : 11.2.0.3.1 (13348650)
- [ZFCASSDB1:grid]:/home/grid>
- col action_time for a30
- col action for a10
- col namespace for a10
- col version for a10
- col bundle_series for a10
- col comments for a30
- SELECT to_char(action_time, 'YYYY-MM-DD HH24:MI:SS') action_time,
- action,
- namespace,
- version,
- id,
- bundle_series,
- comments
- FROM dba_registry_history D;
- select action,comments from registry$history;
- ---grid和oracle分别回滚
- $ORACLE_HOME/OPatch/opatch rollback -local -id 13348650 -oh /oracle/app/oracle/product/11.2.0/db
- ----------------------------- OCR备份
- --逻辑备份恢复
- ocrconfig -export /oracle/app/11.2.0/grid/cdata/ZFTPCCDB-crs/export_asm.bak
- ocrconfig -import /oracle/app/11.2.0/grid/cdata/ZFTPCCDB-crs/export_asm_lhr.bak
- crsctl stop crs
- crsctl start crs -excl -nocrs
- ocrconfig -import /oracle/app/11.2.0/grid/cdata/ZFTPCCDB-crs/export_asm_lhr.bak
- crsctl start crs
- --物理备份恢复
- ocrconfig -manualbackup
- ocrconfig -showbackup
- cluvfy comp ocr -n all -verbose
- cluvfy comp olr -verbose
- crsctl stop crs -f
- crsctl start crs -excl -nocrs
- crsctl stop resource ora.crsd -init
- ocrconfig -restore /oracle/app/11.2.0/grid/cdata/ZFTPCCDB-crs/backup_20160701_152358.ocr
- crsctl stop has -f
- crsctl start crs
- crsctl query css votedisk
- --------dd备份恢复OCR 注:11g不推荐使用dd来进行备份恢复,盘头一般是前4K
- --备份表决磁盘:
- dd if=/dev/raw/raw3 of=/tmp/votedisk_lhr.bak bs=1024k count=4
- --恢复表决磁盘:
- dd if=/tmp/votedisk_lhr.bak of=/dev/raw/raw3 bs=1024k count=4
- ----------kfed修复磁盘头
- dd if=/dev/rhdisk2 of=/asm_rhdisk2_dd.bak bs=1024 count=4
- dd if=/dev/zero of=/dev/rhdisk2 bs=1024 count=4
- kfed repair /dev/rhdisk2
- ----md_backup修复磁盘头
- asmcmd md_backup /oracle/app/11.2.0/grid/cdata/ZFTPCCDB-crs/asm_md_backup.bak
- asmcmd md_restore /oracle/app/11.2.0/grid/cdata/ZFTPCCDB-crs/asm_md_backup.bak
- dd if=/dev/rhdisk2 of=/asm_rhdisk2_dd.bak bs=1024k count=4
- dd if=/dev/zero of=/dev/rhdisk2 bs=1024k count=4
- crsctl stop has -f
- crsctl start has
- ASMCMD [+] > startup force nomount;
- ASMCMD [+] > md_restore /asm_rhdisk2_dd.bak
- ASMCMD [+] > md_backup /rman/asm_md.bak
- dd if=/dev/zero of=/dev/rhdisk2 bs=1024 count=4
- crsctl stop has -f
- crsctl start has
- ASMCMD [+] > startup force nomount;
- ASMCMD [+] > md_restore /rman/asm_md.bak
- -------- OLR的备份恢复
- <GI_HOME>/bin/ocrconfig -local -manualbackup
- <GI_HOME>/bin/ocrconfig -local -showbackup
- ps -ef| grep ohasd.bin
- <GI_HOME>/bin/crsctl stop crs -f <========= for GI Cluster
- <GI_HOME>/bin/crsctl stop has <========= for GI Standalone
- <GI_HOME>/bin/ocrconfig -local -restore <olr-backup>
- <GI_HOME>/bin/crsctl start crs <========= for GI Cluster
- <GI_HOME>/bin/crsctl start has <========= for GI Standalone, this must be done as grid user.
- vi crsstat_lhr.sh
- awk 'BEGIN {printf "%-26s %-26s %-10s %-10s %-10s \n","Name ","Type ","Target ","State ","Host "; printf "%-30s %-26s %-10s %-10s %-10s\n","----------------------------------------","--------------------------","----------", "---------","----------";}'
- crs_stat | awk 'BEGIN { FS="=| ";state = 0;} $1~/NAME/ {appname = $2; state=1}; state == 0 {next;} $1~/TYPE/ && state == 1 {apptype = $2; state=2;} $1~/TARGET/ && state == 2 {apptarget = $2; state=3;} $1~/STATE/ && state == 3 {appstate = $2; apphost = $4; state=4;} state == 4 {printf "%-40s %-26s %-10s %-10s %-10s\n", appname,apptype,apptarget,appstate,apphost; state=0;}'
- -------------------------------------------------------------- OEM
- --重建:
- emca -config dbcontrol db -repos recreate
- emca -config dbcontrol db -repos recreate -cluster
- http://192.168.59.130:1158/em/
- https://192.168.59.128:1158/em/
- 日志:
- $ORACLE_HOME/$hostname_$oracle_sid/sysman/log
- 4.安装过程中出现问题的时候认真查看日志,安装日志路径:$ORACLE_HOME/cfgtoollogs\emca\
- 5.OEM运行日志:$ORACLE_HOME/$hostname_$oracle_sid/sysman/log
- 6.建议重新创建,在oracle用户下:
- 单机: emca -config dbcontrol db -repos recreate
- 集群: emca -config dbcontrol db -repos recreate -cluster
- 若是集群环境,则在创建之前先在grid用户下执行如下代码:
- -----sqlplus / as sysasm ASM实例 GRID 用户下执行
- SYS@+ASM1> create user asmsnmp identified by xxx;
- SYS@+ASM1> grant sysdba to asmsnmp;
- SYS@+ASM1> alter user asmsnmp identified by xxx;
- SYS@+ASM1> alter system set remote_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=ZFZHLHRDB-scan)(PORT=1521))))' sid='*';
- SYS@+ASM1> alter system register;
- 7.启动和关闭维护命令,oracle用户下:export ORACLE_UNQNAME=$DB_UNIQUE_NAME ,数据库唯一名,进程:ps -ef| grep em
- 启动: emctl stop dbconsole
- 关闭: emctl stop dbconsole
- 运行状态:emctl status dbconsole
- -------------------------------------------- dbca 静默建库 windows 和 linux 命令一样
- ------归档
- vi $ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc
- 修改为:<archiveLogMode>true</archiveLogMode>
- [oracle@rhel6_lhr ~]$ strings $ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc | grep -i arch
- <archiveLogMode>false</archiveLogMode>
- ----静默安装数据库日志路径:
- 11g:$ORACLE_BASE/cfgtoollogs/dbca
- 10g:$ORACLE_HOME/cfgtoollogs/dbca
- ---dbca -silent整理 \ 后不能包含空格
- dbca -silent -deleteDatabase -sourceDB mydb
- dbca -silent -createDatabase -templateName General_Purpose.dbc -responseFile NO_VALUE \
- -gdbname mydb -sid mydb \
- -sysPassword oracle -systemPassword oracle \
- -datafileDestination 'DATA/' -recoveryAreaDestination 'DATA/' \
- -redoLogFileSize 50 \
- -storageType ASM -asmsnmpPassword oracle -diskGroupName 'DATA' \
- -characterset AL32UTF8 -nationalCharacterSet AL16UTF16 \
- -sampleSchema true \
- -automaticMemoryManagement true -totalMemory 2048 \
- -databaseType OLTP \
- -emConfiguration NONE \
- -nodeinfo ZFZHLHRDB1,ZFZHLHRDB2
- dbca -silent -deleteDatabase -sourceDB mydb
- dbca -silent -createDatabase -templateName General_Purpose.dbc -responseFile NO_VALUE \
- -gdbname mydb -sid mydb \
- -sysPassword oracle -systemPassword oracle \
- -datafileDestination '/u05/app/oracle' -recoveryAreaDestination '/u05/app/oracle' \
- -storageType FS \
- -characterset AL32UTF8 -nationalCharacterSet AL16UTF16 \
- -sampleSchema false \
- -memoryPercentage 10 \
- -databaseType OLTP \
- -emConfiguration NONE
- ---10g
- dbca -silent -createDatabase -templateName General_Purpose.dbc -responseFile NO_VALUE \
- -gdbname mydg -sid mydg \
- -sysPassword lhr -systemPassword lhr \
- -datafileDestination '/cds/oradata' -recoveryAreaDestination '/cds/oradata' \
- -storageType FS \
- -characterset ZHS16GBK -nationalCharacterSet AL16UTF16 \
- -sampleSchema true \
- -memoryPercentage 20 \
- -databaseType OLTP \
- -emConfiguration NONE
- --12C
- dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname oradb.example.com -sid oradb -responseFile NO_VALUE -characterSet AL32UTF8 -memoryPercentage 30 -emConfiguration NONE
- dbca -silent -createDatabase -templateName General_Purpose.dbc -responseFile NO_VALUE \
- -gdbname lhrdb -sid lhrdb \
- -createAsContainerDatabase false \
- -sysPassword lhr -systemPassword lhr -serviceUserPassword lhr \
- -datafileDestination '/u01/app/oracle' -recoveryAreaDestination '/u01/app/oracle' \
- -storageType FS \
- -characterset ZHS16GBK -nationalCharacterSet AL16UTF16 \
- -sampleSchema true \
- -memoryPercentage 30 \
- -databaseType OLTP \
- -emConfiguration NONE
- --12C rac
- dbca -silent -createDatabase -templateName General_Purpose.dbc -responseFile NO_VALUE \
- -gdbname lhrrac -sid lhrrac \
- -createAsContainerDatabase false \
- -sysPassword lhr -systemPassword lhr -serviceUserPassword lhr \
- -datafileDestination 'DATA/' -recoveryAreaDestination 'FRA/' \
- -storageType ASM -asmsnmpPassword oracle -diskGroupName 'DATA' \
- -characterset ZHS16GBK -nationalCharacterSet AL16UTF16 \
- -sampleSchema true \
- -memoryPercentage 30 \
- -databaseType OLTP \
- -emConfiguration NONE \
- -nodeinfo raclhr-12cR1-N1,raclhr-12cR1-N2
- --11g
- dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname ora11g -sid ora11g -sysPassword lhr -systemPassword lhr -responseFile NO_VALUE -datafileDestination /u01/app/oracle/oradata -redoLogFileSize 50 -recoveryAreaDestination /u01/app/oracle/flash_recovery_area -storageType FS -characterSet ZHS16GBK -nationalCharacterSet AL16UTF16 -sampleSchema true -memoryPercentage 30 -totalMemory 200 -databaseType OLTP -emConfiguration NONE -automaticMemoryManagement true
- dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname ora11g -sid ora11g -responseFile NO_VALUE -datafileDestination /u01/app/oracle/oradata -characterSet AL32UTF8
- ----ASM 存储 单实例
- dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname ora11g -sid ora11g -sysPassword lhr -systemPassword lhr -responseFile NO_VALUE -datafileDestination 'DATA/' -redoLogFileSize 50 -recoveryAreaDestination 'TEST/' -storageType ASM -asmsnmpPassword lhr -diskGroupName 'DATA' -characterSet ZHS16GBK -nationalCharacterSet AL16UTF16 -sampleSchema true -memoryPercentage 30 -totalMemory 200 -databaseType OLTP -emConfiguration NONE -automaticMemoryManagement true
- ---默认
- --- 闪回恢复区 创建
- --storageType FS
- --sampleSchema 默认创建
- --em 默认不创建
- --10g
- dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname ora11g -sid ora11g -sysPassword lhr -systemPassword lhr -responseFile NO_VALUE -datafileDestination /u01/app/oracle/oradata -recoveryAreaDestination /u01/app/oracle/flash_recovery_area -storageType FS -characterSet ZHS16GBK -nationalCharacterSet AL16UTF16 -sampleSchema true -memoryPercentage 30 -databaseType OLTP -emConfiguration NONE
- ----------------根据模板文件进行安装
- dbca -silent -responseFile $ORACLE_HOME/assistants/dbca/dbca.rsp
- dbca -silent -cloneTemplate -responseFile $ORACLE_HOME/assistants/dbca/dbca.rsp -gdbName orcltest -sid orcltest -datafileDestination /u01/app/oracle/oradata
- -------------------- 根据数据库生成不带数据文件的模板
- dbca -silent -createTemplateFromDB -sourceDB 192.168.59.130:1521:ora10g -templateName dbtemplate_ora10g2_lhr -sysDBAUserName sys -sysDBAPassword lhr
- -------------------- 根据数据库生成带数据文件的模板
- dbca -silent -createCloneTemplate -sourceDB orcltest -sysDBAUserName lhr -sysDBAPassword lhr -templateName dbtemplate_orcltest_lhr -datafileJarLocation
- -------------------- 利用带数据文件的模板生成克隆数据库
- dbca -silent -createDatabase -templateName dbtemplate_orcltest_lhr.dbc -gdbname orcl22 -sid orcl22 -sysPassword lhr -systemPassword lhr -datafileJarLocation $ORACLE_HOME/assistants/dbca/templates -datafileDestination /u01/app/oracle/oradata -responseFile NO_VALUE -characterset ZHS16GBK
- -------------------- 利用不带数据文件的模板生成新的数据库 慢,不推荐
- ----dbca -silent -createDatabase -templateName New_Database.dbt -gdbname test33 -sid test33 -datafileDestination /u01/app/oracle/oradata -responseFile NO_VALUE -characterset ZHS16GBK
- ---------------- 删除数据库
- dbca -silent -deleteDatabase -sourceDB orclbb -sysDBAUserName sys -sysDBAPassword lhr
- ------------- linux、AIX下 rac 数据库的创建
- dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname jmrac -sid jmrac -sysPassword lhr -systemPassword lhr -datafileDestination 'DATA/' -redoLogFileSize 50 -recoveryAreaDestination 'ARCH/' -storageType ASM -asmsnmpPassword lhr -diskGroupName 'DATA' -responseFile NO_VALUE -characterset ZHS16GBK -nationalCharacterSet AL16UTF16 -sampleSchema true -automaticMemoryManagement true -totalMemory 500 -nodeinfo node1,node2
- ----windows下创建rac库,注意参数 diskGroupName 为 DATA ,不能带有引号
- dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname winrac -sid winrac -sysPassword lhr -systemPassword lhr -datafileDestination 'DATA/' -redoLogFileSize 50 -recoveryAreaDestination 'FRA/' -storageType ASM -asmsnmpPassword lhr -diskGroupName DATA -responseFile NO_VALUE -characterset ZHS16GBK -nationalCharacterSet AL16UTF16 -sampleSchema true -automaticMemoryManagement true -totalMemory 300 -nodeinfo rac1,rac2
- ----- 或者:
- [oracle@node1 dbca]$ more $ORACLE_HOME/assistants/dbca/dbca_rac.rsp
- [GENERAL]
- RESPONSEFILE_VERSION = "11.2.0"
- OPERATION_TYPE = "createDatabase"
- [CREATEDATABASE]
- GDBNAME = "myrac"
- SID = "myrac"
- NODELIST=node1,node2
- TEMPLATENAME = "General_Purpose.dbc"
- SYSPASSWORD = "lhr"
- SYSTEMPASSWORD = "lhr"
- SYSMANPASSWORD = "lhr"
- DBSNMPPASSWORD = "lhr"
- STORAGETYPE=ASM
- DISKGROUPNAME=DATA
- ASMSNMP_PASSWORD="lhr"
- RECOVERYGROUPNAME=ARCH
- CHARACTERSET = "ZHS16GBK"
- NATIONALCHARACTERSET= "UTF8"
- [oracle@node1 dbca]$ dbca -silent -responseFile $ORACLE_HOME/assistants/dbca/dbca_rac.rsp
- set line 9999
- col HOST_NAME format a10
- select INSTANCE_NAME,HOST_NAME,VERSION,STARTUP_TIME,STATUS,ACTIVE_STATE,INSTANCE_ROLE,DATABASE_STATUS from gv$INSTANCE;
- select INST_ID,name , open_mode, log_mode,force_logging from gv$database;
- ------------------------------------------------------------------- 静默安装
- ---------- 单实例数据库安装
- vi /tmp/database/response/db_install.rsp
- ORACLE_HOSTNAME=192.168.59.129
- UNIX_GROUP_NAME=oinstall
- INVENTORY_LOCATION=/u02/app/oracle/oraInventory
- SELECTED_LANGUAGES=en,zh_CN
- ORACLE_HOME=/u02/app/oracle/product/11.2.0/dbhome_1
- ORACLE_BASE=/u02/app/oracle
- oracle.install.db.InstallEdition=EE
- oracle.install.db.EEOptionsSelection=false
- oracle.install.db.DBA_GROUP=dba
- oracle.install.db.OPER_GROUP=oper
- oracle.install.db.isRACOneInstall=false
- oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
- SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
- oracle.installer.autoupdates.option=SKIP_UPDATES
- ----软件安装
- ./runInstaller -silent -noconfig -responseFile /tmp/database/response/db_install.rsp -ignoreSysPrereqs -ignorePrereq
- ----静默创建asm实例
- /u01/app/11.2.0/grid/bin/asmca -silent -configureASM -sysAsmPassword lhr -asmsnmpPassword lhr -diskGroupName OCR -diskList /dev/rhdisk20 -redundancy EXTERNAL
- ----监听配置
- $ORACLE_HOME/bin/netca /silent /responsefile /u01/database/netca.rsp
- netca -silent -responsefile $ORACLE_HOME/assistants/netca/netca.rsp
- $ORACLE_HOME/bin/netca /silent /responsefile /u01/database/netca.rsp
- netca -silent -responsefile $ORACLE_HOME/assistants/netca/netca.rsp
- netca -silent -responsefile $ORACLE_HOME/assistants/netca/netca.rsp -instype custom -listener LISTENER_LHR
- crsctl delete resource ora.LISTENER.lsnr -f
- rm $ORACLE_HOME/network/admin/listener.ora
- ---------------------------------- 单实例grid安装
- /softtmp/grid/runInstaller -silent -force -noconfig -IgnoreSysPreReqs -ignorePrereq -showProgress \
- ORACLE_HOSTNAME=ZFFR4CB2101 \
- INVENTORY_LOCATION=/u01/app/oraInventory \
- SELECTED_LANGUAGES=en \
- oracle.install.option=CRS_SWONLY \
- ORACLE_BASE=/u01/app/grid \
- ORACLE_HOME=/u01/app/11.2.0/grid \
- oracle.install.asm.OSDBA=asmdba \
- oracle.install.asm.OSOPER=asmoper \
- oracle.install.asm.OSASM=asmadmin \
- oracle.install.crs.config.storageOption=ASM_STORAGE \
- oracle.install.crs.config.sharedFileSystemStorage.votingDiskRedundancy=EXTERNAL \
- oracle.install.crs.config.sharedFileSystemStorage.ocrRedundancy=EXTERNAL \
- oracle.install.crs.config.useIPMI=false \
- oracle.install.asm.SYSASMPassword=lhr \
- oracle.install.asm.diskGroup.name=OCR \
- oracle.install.asm.diskGroup.redundancy=EXTERNAL \
- oracle.install.asm.diskGroup.disks=/dev/rhdisk20 \
- oracle.install.asm.monitorPassword=lhr \
- oracle.installer.autoupdates.option=SKIP_UPDATES
- ---------------------------------- 单实例db安装
- /softtmp/database/runInstaller -silent -force -noconfig -IgnoreSysPreReqs -ignorePrereq -showProgress \
- oracle.install.option=INSTALL_DB_SWONLY \
- DECLINE_SECURITY_UPDATES=true \
- UNIX_GROUP_NAME=oinstall \
- INVENTORY_LOCATION=/u01/app/oraInventory \
- SELECTED_LANGUAGES=en \
- ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 \
- ORACLE_BASE=/u01/app/oracle \
- oracle.install.db.InstallEdition=EE \
- oracle.install.db.isCustomInstall=false \
- oracle.install.db.DBA_GROUP=dba \
- oracle.install.db.OPER_GROUP=dba \
- oracle.install.db.isRACOneInstall=false \
- oracle.install.db.config.starterdb.type=GENERAL_PURPOSE \
- SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \
- oracle.installer.autoupdates.option=SKIP_UPDATES
- ---------------------------------- rac grid安装
- ./runInstaller -silent -force -noconfig -IgnoreSysPreReqs -ignorePrereq -showProgress \
- INVENTORY_LOCATION=/u01/app/oraInventory \
- SELECTED_LANGUAGES=en \
- ORACLE_BASE=/u01/app/grid \
- ORACLE_HOME=/u01/app/11.2.0/grid \
- oracle.install.asm.OSDBA=asmdba \
- oracle.install.asm.OSOPER=asmoper \
- oracle.install.asm.OSASM=asmadmin \
- oracle.install.crs.config.storageOption=ASM_STORAGE \
- oracle.install.crs.config.sharedFileSystemStorage.votingDiskRedundancy=EXTERNAL \
- oracle.install.crs.config.sharedFileSystemStorage.ocrRedundancy=EXTERNAL \
- oracle.install.crs.config.useIPMI=false \
- oracle.install.asm.diskGroup.name=OCR \
- oracle.install.asm.diskGroup.redundancy=EXTERNAL \
- oracle.installer.autoupdates.option=SKIP_UPDATES \
- oracle.install.crs.config.gpnp.scanPort=1521 \
- oracle.install.crs.config.gpnp.configureGNS=false \
- oracle.install.option=CRS_CONFIG \
- oracle.install.asm.SYSASMPassword=lhr \
- oracle.install.asm.monitorPassword=lhr \
- oracle.install.asm.diskGroup.diskDiscoveryString=/dev/rhdisk* \
- oracle.install.asm.diskGroup.disks=/dev/rhdisk10 \
- oracle.install.crs.config.gpnp.scanName=ZFFR4CB2101-scan \
- oracle.install.crs.config.clusterName=ZFFR4CB-cluster \
- oracle.install.crs.config.autoConfigureClusterNodeVIP=false \
- oracle.install.crs.config.clusterNodes=ZFFR4CB2101:ZFFR4CB2101-vip,ZFFR4CB1101:ZFFR4CB1101-vip \
- oracle.install.crs.config.networkInterfaceList=en0:22.188.187.0:1,en1:222.188.187.0:2 \
- ORACLE_HOSTNAME=ZFFR4CB2101
- ---------------------------------- rac db安装
- ./runInstaller -silent -force -noconfig -IgnoreSysPreReqs -ignorePrereq -showProgress \
- oracle.install.option=INSTALL_DB_SWONLY \
- DECLINE_SECURITY_UPDATES=true \
- UNIX_GROUP_NAME=oinstall \
- INVENTORY_LOCATION=/u01/app/oraInventory \
- SELECTED_LANGUAGES=en \
- oracle.install.db.InstallEdition=EE \
- oracle.install.db.isCustomInstall=false \
- oracle.install.db.EEOptionsSelection=false \
- oracle.install.db.DBA_GROUP=dba \
- oracle.install.db.OPER_GROUP=asmoper \
- oracle.install.db.isRACOneInstall=false \
- oracle.install.db.config.starterdb.type=GENERAL_PURPOSE \
- SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \
- oracle.installer.autoupdates.option=SKIP_UPDATES \
- ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 \
- ORACLE_BASE=/u01/app/oracle \
- ORACLE_HOSTNAME=ZFFR4CB2101 \
- oracle.install.db.CLUSTER_NODES=zffr4cb2101,zffr4cb1101 \
- oracle.install.db.isRACOneInstall=false
- -------自动启动 The Oracle system identifier(SID) "orcltest" already exists. Specify another SID.
- vi /etc/oratab
- ---------启动
- 1) lsnrctl start (启动监听) -------监听停止: lsnrctl stop,lsnrctl是listener-control 监听器的缩写,查看监听的状态(lsnrctl status)
- 2) net start OracleServiceORCL (COCL 我的SID,可以小写,这是开启数据库实例)
- 或者用 oradim –startup –sid orcl -----net stop OracleServiceORACLE
- /********************************************************************************
- * SQL Scripts Name:
- * SQL Scripts Desc:
- * Author:
- * Date:
- * Inputs:
- * Outputs:
- * Return:
- * History:
- ********************************************************************************/
- --------------- 修改dbid和dbname
- 原: orcltest
- 修改后:DBID: 4270446895 Database Name: ORA11G
- create pfile from spfile;
- shutdown immediate;
- startup mount;
- nid target=sys/lhr dbname=ORA11G
- cp initorcltest.ora initORA11G.ora
- shutdown immediate;
- startup open read only;
- @chang_dbid_lhr.sql
- create pfile from spfile;
- shutdown immediate;
- ------------AUTHID CURRENT_USER
- CREATE OR REPLACE PROCEDURE PRO_XXXX_LHR(p_flag in NUMBER DEFAULT 1,
- p_result out varchar2)
- AUTHID CURRENT_USER AS
- begin
- end ;
- --------- oracle 用户 解压缩
- gunzip -c 10201_database_linux_x86_64.cpio.gz > /tmp/10201_database_linux_x86_64.cpio
- cpio -idmv < 10201_database_linux_x86_64.cpio
- unzip p6810189_10204_Linux-x86-64.zip -d /tmp
- 压缩当前的文件夹 zip -r ./xahot.zip ./* -r表示递归
- zip [参数] [打包后的文件名] [打包的目录路径]*/
- Linux下*.tar.gz文件解压缩命令
- 1.压缩命令:
- 命令格式:tar -zcvf 压缩文件名.tar.gz 被压缩文件名
- 可先切换到当前目录下。压缩文件名和被压缩文件名都可加入路径。
- 2.解压缩命令:
- 命令格式:tar -zxvf 压缩文件名.tar.gz
- 解压缩后的文件只能放在当前的目录。
- Aix下*.tar.gz文件解压缩命令
- gunzip -c gdul3.5.0.1.tar.gz | tar -xvf -
- ---------- 重建scott用户
- sqlplus / as sysdba
- SQL>@$ORACLE_HOME/rdbms/admin/utlsampl.sql
- -------------SQLNET跟踪tnsping过程 sqlnet.ora中配置
- Trace_level_client=16
- Trace_directory_client=D:\Program files\app\oracle\product\11.2.0.1\dbhome_1\NETWORK\ADMIN
- Trace_unique_client=on
- Trace_timestamp_client=on
- Diag_adr_enabled=off
- tnsping.trace_directory=D:\Program files\app\oracle\product\11.2.0.1\dbhome_1\NETWORK\ADMIN
- tnsping.trace_level=support
- ----------元数据获取
- SELECT to_char(DBMS_METADATA.GET_DDL('TABLESPACE', a.tablespace_name))
- FROM DBA_TABLESPACES a
- where a.TABLESPACE_NAME = 'TS_LHR';
- SELECT TO_CHAR(DBMS_METADATA.GET_DDL('TABLE','EMP','SCOTT')) DDL_SQL FROM DUAL;
- SELECT ((DBMS_METADATA.GET_GRANTED_DDL('OBJECT_GRANT', 'LHRSYS'))) FROM DUAL
- UNION ALL
- SELECT ((DBMS_METADATA.GET_GRANTED_DDL('ROLE_GRANT', 'LHRSYS'))) FROM DUAL
- UNION ALL
- SELECT ((DBMS_METADATA.GET_GRANTED_DDL('SYSTEM_GRANT', 'LHRSYS'))) FROM DUAL;
- --------------linux 跟踪sqlplus进程
- strace -o /tmp/output.txt -T -tt -e trace=all sqlplus / as sysdba
- [root@rhel6_lhr ~]# strace -t -p 4545
- ------------- Unix 跟踪sqlplus进程
- truss -dfaie -o /tmp/sched_trace.out.02271 sqlplus '/as sysdba'
- -----aix 修改系统时间
- linux下用date -s "20131215 09:02:25"把时间设为2013年12月15日9点2分25秒。
- 而aix呢?它不认-s这个参数:
- date -n mmddHHMMYY,mm表示月分,dd表示日期,HH表示小时,MM表示分钟,YY表示年份。
- 如:date -n 1215090213表示把当前时间设为2013年12月15日9点2分,秒数无法修改。
- -----自动同步linux时间
- 1、下载ntpdate
- 注:有些版本是没有自带ntpdate,因此需要下载
- # yum install -y ntpdate
- 2、调整时区为上海,也就是北京时间+8区
- 注:想改其他时区也可以去看看/usr/share/zoneinfo目录
- # cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
- # yes | cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
- 3、使用NTP来同步时间
- # ntpdate us.pool.ntp.org
- 4、定时同步时间(每隔10分钟同步时钟)
- # crontab -l >/tmp/crontab.bak
- # echo "*/10 * * * * /usr/sbin/ntpdate us.pool.ntp.org | logger -t NTP" >> /tmp/crontab.bak
- # crontab /tmp/crontab.bak
- -----笔记本开启:wlan
- netsh wlan set hostednetwork mode=allow ssid=lhr-minPC key=lihuarong
- netsh wlan start hostednetwork
- netsh wlan show hostednetwork
- ------------ 福昕pdf
- --右转
- crtl+shift++
- ------ Quote (q) 语法
- select q''
- from employees;
- select q'\\'
- from employees;
- select q'\ \'
- from employees;
- -------------------------------------- OS 类型
- -----临时修改语言环境:
- AIX:
- export LANG=en_US
- export LANG=zh_CN
- Linux:
- export LANG=en_US.UTF-8
- export LANG=zh_CN.UTF-8
- 可用语言环境:
- locale -a | grep zh_CN
- --------- Linux
- cpu : cat /proc/cpuinfo|grep name|cut -f2 -d:|uniq -c
- memory :cat /proc/meminfo
- os version : lsb_release -a
- os hostname hostname
- ------aix
- -------------- AIX 查看CPU个数
- 1. smtctl
- 2. bindprocessor -q
- 3. prtconf
- 4.lsdev
- 5.vmstat
- racle@DNSCDBS05:/home/oracle>hostname
- DNSCDBS05
- oracle@DNSCDBS05:/home/oracle>oslevel -r
- 7100-01
- oracle@DNSCDBS05:/home/oracle>uname -vr
- 1 7
- oracle@DNSCDBS05:/home/oracle>uname -s
- AIX
- oracle@DNSCDBS05:/home/oracle>uname -a
- AIX DNSCDBS05 1 7 00F813B44C00
- oracle@DNSCDBS05:/home/oracle>uname -v
- 7
- oracle@DNSCDBS05:/home/oracle>pmcycles -m
- CPU 0 runs at 3024 MHz
- CPU 1 runs at 3024 MHz
- CPU 2 runs at 3024 MHz
- CPU 3 runs at 3024 MHz
- CPU 4 runs at 3024 MHz
- CPU 5 runs at 3024 MHz
- CPU 6 runs at 3024 MHz
- CPU 7 runs at 3024 MHz
- oracle@DNSCDBS05:/home/oracle>prtconf|grep Processors
- Number Of Processors: 2
- prtconf
- prtdiag
- select userenv('LANGUAGE') from dual;
- archive log list;
- select name from v$datafile;
- ------------------------------- 表空间历史增长量
- select a.name, b.*
- from v$tablespace a,
- (select tablespace_id ts#,
- trunc(to_date(rtime, 'mm/dd/yyyy hh24:mi:ss')) datetime,
- round(max(tablespace_usedsize * 8 / 1024),2) ts_used_size_M,
- round(max(v.tablespace_size * 8 / 1024),2) ts_size_MB,
- round(max(tablespace_maxsize * 8 / 1024/1024)) ts_maxsize_G
- from dba_hist_tbspc_space_usage v
- where trunc(to_date(rtime, 'mm/dd/yyyy hh24:mi:ss')) >=
- trunc(sysdate - 10)
- group by tablespace_id,
- trunc(to_date(rtime, 'mm/dd/yyyy hh24:mi:ss'))
- order by tablespace_id,
- trunc(to_date(rtime, 'mm/dd/yyyy hh24:mi:ss'))) b
- where a.ts# = b.ts#
- ORDER BY b.TS#,b.datetime;
- --------------------------------------------- BIOS设置之UEFI BIOS 切换为 Legacy BIOS
- 1、OS Optimized Defaults系统默认优化设置 配置为DISABLE
- 2、CSM兼容模块设置 配置为ENABLE
- 3、Boot Mode启动方式选择 配置为:Legacy only
- 4、Secure boot 配置为:DISABLE
- ---------------------------------- nmon
- nmon -f -t -r nmon_lhr -s 10 -c 60
- nmon -f -t -r nmon_lhr -s 30 -c 10
- nmon -s10 -c60 -f -m /home/
- 上面命令的含义是:
- -f :按标准格式输出文件名称:<hostname>_YYYYMMDD_HHMM.nmon
- -t :输出最耗资源的进程
- -r : nmon生成的标题,监控记录的标题
- -s :每隔n秒抽样一次,这里为30秒
- -c :取出多少个抽样数量,这里为10,即监控=10*30/60=5分钟
- -m : 生成的数据文件的存放目录。
- -----------------自动按天采集数据:
- 在 crontab 中增加一条记录:
- 0 0 * * * root nmon -s300 -c288 -f -m /home/ > /dev/null 2>&1
- 300*288=86400 秒,正好是一天的数据。
- ------------------ 根据相对位置创建快捷方式
- %SystemRoot%\explorer.exe "一个绝对路径或相对路径"
- 如:
- %SystemRoot%\explorer.exe "..\TEST\TEST\TEST.txt"
- 注意:得把起始位置清空
- ----------------- OGG
- ------- source端准备
- SQL> col current_scn format 999999999999999
- SQL> Select current_scn from v$database;
- CURRENT_SCN
- ----------------
- 12242466771468
- SQL>
- expdp XPADB/XPADB directory=DMP dumpfile=xpadb_20160125_01.dmp LOGFILE=xpadb_20160125.log TABLES=BASE_ACTIONPOWER,BASE_BANK,BASE_BANKMERGE FLASHBACK_SCN=12242466771468
- ---------- target 备份
- expdp xpadrpt/xpadrpt directory=OGGD dumpfile=xpadb_20160125_02.dmp LOGFILE=xpadb_20160125_2.log TABLES=BASE_ACTIONPOWER,BASE_BANK,BASE_BANKMERGE
- impdp XPADRPT/xpadrpt DIRECTORY=OGGD DUMPFILE=xpadb_20160125_01.dmp LOGFILE=impdp.xpadb_20160125_01.log REMAP_SCHEMA=xpadb:xpadrpt REMAP_TABLESPACE=xpaddat:xpaddata table_exists_action=replace
- start replicat ggsrep , aftercsn 12242466771468
- ------------- VirtualBox 修改磁盘大小 51200 为5G
- vboxmanage list hdds
- vboxmanage modifyhd "E:\My Virtual Machines\VirtualBox VMs\VirtualBox_XP\Windows XP.vdi" --resize 51200
- --------------WPS 去掉文档漫游
- Windows Registry Editor Version 5.00
- [HKEY_CURRENT_USER\Software\Kingsoft\Office\6.0\plugins\officespace]
- "roaminghomepageguidedtag"="9.1.0.4715"
- 文件另存为.reg格式。在wps关闭下,双击该文件,按”是“和”确定“导入注册表。打开wps,没有文档漫游了。如果希望再次显示”文档漫游“,将该给文件中的"9.1.0.4715"改为""保存,运行就可了。
- ------------------------- Linux 权限
- 755表示该文件所有者对该文件具有读、写、执行权限,该文件所有者所在组用户及其他用户对该文件具有读和执行权限。
- linux文件权限一般都以8进制表示,格式为abc的形式,其中a,b,c各为一个数字,分别表示User、Group、及Other对该文件的操作权限;
- 如果文件权限用二进制表示那么是9位bit,从左至右,1-3位数字代表文件所有者的权限,4-6位数字代表同组用户的权限,7-9数字代表其他用户的权限;
- 而具体的权限是由数字来表示的,读取的权限等于4,用r表示;写入的权限等于2,用w表示;执行的权限等于1,用x表示;
- 通过4、2、1的组合,得到以下几种权限:0(没有权限);4(读取权限);5(4+1 | 读取+执行);6(4+2 | 读取+写入);7(4+2+1 | 读取+写入+执行)
- 常用的linux文件权限如下:
- 444 r--r--r--
- 600 rw-------
- 644 rw-r--r--
- 666 rw-rw-rw-
- 700 rwx------
- 744 rwxr--r--
- 755 rwxr-xr-x
- 777 rwxrwxrwx
- 这里以755为例:
- 1-3位7等于4+2+1,rwx,所有者具有读取、写入、执行权限;
- 4-6位5等于4+1+0,r-x,同组用户具有读取、执行权限但没有写入权限;
- 7-9位5,同上,也是r-x,其他用户具有读取、执行权限但没有写入权限。
- rwxr-xr-x: 当前文件 对 所属用户 为 可读可写可运行,对所属组为可读可运行,对其他用户为 可读可运行
- Linux 中对于文件的权限 分为 可读(r),可写(w),可运行(x),其对应的 8进制代码是
- 可读(r):4,可写(w):2,可运行(x):1 ,如果有多个权限,那么对应的8进制数字就是各个单独权限数字相加,3个数字中,第一个代表文件所属用户,第二个 代表文件所属组,第三个 代表 其他。 那么 对于 所属用户为可读可写可运行 就是 4+2+1 = 7, 对于所属组为 可读可运行就是 4+1 = 5 ,对于其他用户 为 可读 可运行 就是 4+1 = 5, 合起来就是 755 的权限
- -------------- linux下查看所有用户
- cat /etc/passwd |cut -f 1 -d :
- ---------- AIX查看所有用户及其id
- lsuser ALL |cut -d ' ' -f 1
- lsuser ALL |cut -d ' ' -f 2
- lsuser ALL |cut -d ' ' -f 1-2
- ---------- AIX查看所有用户组及其id
- lsgroup ALL |cut -d ' ' -f 1
- lsgroup ALL |cut -d ' ' -f 2
- lsgroup ALL |cut -d ' ' -f 1-2
- ---------- linux和AIX查看所有用户及其id
- cat /etc/passwd |cut -d : -f 1
- cat /etc/passwd |cut -d : -f 3
- cat /etc/passwd |cut -d : -f 1,3
- cat /etc/passwd | awk 'BEGIN{FS=":"} {printf "%-15s %-10s %-20s \n",$1,$3,$6}' | sort -n -k2
- cat /etc/passwd | awk 'BEGIN{FS=":"} $3>=100 {printf "%-15s %-10s %-20s \n",$1,$3,$6}' | sort -n -k2
- ---------- linux和AIX查看所有用户组及其id
- cat /etc/group |cut -d : -f 1
- cat /etc/group |cut -d : -f 3
- cat /etc/group |cut -d : -f 1,3
- cat /etc/group | awk 'BEGIN{FS=":"} {printf "%-15s %-10s \n",$1,$3}' | sort -n -k2
- cat /etc/group | awk 'BEGIN{FS=":"} $3>=100 {printf "%-15s %-10s \n",$1,$3}' | sort -n -k2
- [root@redhat4 ~]# cat /etc/group | awk 'BEGIN{FS=":"} {printf "%-10s %-5s \n",$1,$3}'
- root 0
- bin 1
- daemon 2
- sys 3
- adm 4
- tty 5
- xfs 43
- ntp 38
- gdm 42
- stapdev 101
- stapusr 102
- pegasus 65
- htt 103
- oinstall 500
- dba 501
- ---------- linux和AIX查看所有用户组及其id,且id>=100
- [root@redhat4 ~]# cat /etc/group | awk 'BEGIN{FS=":"} $3>=100 {printf "%-10s %-5s \n",$1,$3}'
- users 100
- nfsnobody 4294967294
- stapdev 101
- stapusr 102
- htt 103
- oinstall 500
- dba 501
- [root@redhat4 ~]#
- -------------------------------------------------------------------------------- 虚拟机系列 --------------------------------------------------------------------------------
- ------------------------------------------- 最新的XP虚拟机 Windows XP.vdi
- 虚拟机安装:无论是绿色还是安装都需要有管理员的权限
- 虚拟机中安装windows7: 需要进入PE系统后再安装
- c:
- cd C:\Program Files (x86)\VMware\VMware Workstation\
- ----文件合并
- vmware-vdiskmanager -r "E:\My Virtual Machines\Windows XP Professional\Windows XP Professional.vmdk" -t 0 "E:\My Virtual Machines\Windows XP Professional\XP_LHR.vmdk"
- ---增大虚拟机文件 -x后的参数为磁盘扩展后的总大小
- vmware-vdiskmanager -x 15Gb "G:\VMware Space\Red Hat Enterprise Linux 5.vmdk"
- ---压缩磁盘空间,但是磁盘的最大值不变
- vmware-vdiskmanager -k "G:\My Virtual Machines\RHEL6.5_LHRDB\RHEL6.5_LHRDB_DATA.vmdk"
- {} 必须有
- [] 可选项
- | 选择
- <> 注释或参数值
- ()
- -------------------------------------------------------------------------------- CHM --------------------------------------------------------------------------------
- chm文件是由Windows目录下的hh.exe这个文件打开的,但是它的搜索功能却不是这个文件能办到的, 所以, chm能打开却无法搜索, 或者是MSDN能打开却无法搜索, 即使重装也无济于事, 有的人遇到这个问题还从其他人的机器上重新拷贝了hh.exe这个文件, 发现仍然不能解决这个问题。 其实解决这个问题,很简单, 在运行里面执行以下命令:
- regsvr32 hhctrl.ocx
- regsvr32 itss.dll
- regsvr32 itircl.dll //这个很重要,是关于全文搜索的。
- 问题就可以解决了。 最后一个命令特别重要, 以前我找到的解决方法只有前面两个, 没有最后一个, 还是解决不了问题的。
- 如果chm格式文件出现“网页不能浏览”的错误,在该文档上点击鼠标右键,解除锁定即可。
- ------------------------------------ shell中的引号
- 单引号和双引号的区别。单引号告诉shell忽略所有特殊字符,而双引号忽略大多数,但不包括$、\、`。
- -------------------------------------------
- Sub setpicsize() '批量选中图片
- Dim j '计数图片个数
- Application.ScreenUpdating = False
- For j = 1 To ActiveDocument.InlineShapes.Count '文件中图片总个数,图片类型为inlineshapes
- 'ActiveDocument.InlineShapes(j).Height = ActiveDocument.InlineShapes(j).Height '设置高度
- 'ActiveDocument.InlineShapes(j).Width = ActiveDocument.InlineShapes(j).Width '设置宽度
- ActiveDocument.InlineShapes(j).Range.Editors.Add wdEditorEveryone
- Next j
- ActiveDocument.SelectAllEditableRanges (wdEditorEveryone)
- ActiveDocument.DeleteAllEditableRanges (wdEditorEveryone)
- Application.ScreenUpdating = True
- End Sub
- 'ALTER SYSTEM KILL SESSION ''' || s.SID || ',' || s.SERIAL# ||',@'||A.INST_ID||' IMMEDIATE ;' kill_session,
- 'ALTER SYSTEM KILL SESSION ''' || s.SID || ',' || s.SERIAL# ||''' IMMEDIATE ;' kill_session,
- ALTER SYSTEM KILL SESSION '1228,42549,@1';
- SELECT 'ALTER SYSTEM DISCONNECT SESSION ''' || V.SID || ',' || V.SERIAL# || ',@' ||
- V.INST_ID || ''' IMMEDIATE',
- 'ALTER SYSTEM DISCONNECT SESSION ''' || V.SID || ',' || V.SERIAL# ||
- ''' IMMEDIATE',
- V.*
- FROM GV$SESSION V;
- -----清理killed的会话
- -----方法1
- select spid, program from v$process
- where program!= 'PSEUDO'
- and addr not in (select paddr from v$session)
- and addr not in (select paddr from v$bgprocess)
- and addr not in (select paddr from v$shared_server);
- select INST_ID, spid, program,'kill -9 '|| spid kill9
- from gv$process a
- where program != 'PSEUDO'
- and (INST_ID, addr) not in (select INST_ID, paddr from gv$session)
- and (INST_ID, addr) not in (select INST_ID, paddr from gv$bgprocess)
- and (INST_ID, addr) not in (select INST_ID, paddr from gv$shared_server)
- and a.PNAME is null;
- -----方法2
- set line 9999
- col sessionid format a20
- col sessionid_killed format a20
- col kill_session format a60
- SELECT a.INST_ID,
- a.SID || ',' || a.SERIAL# || ',' ||
- (select spid
- from gv$process b
- where b.INST_ID = a.INST_ID
- and A.creator_addr = b.ADDR --and decode(a.status,'KILLED',A.creator_addr,A.PADDR) = b.ADDR
- ) sessionid,
- a.PADDR,
- a.STATUS,
- a.PROGRAM,
- 'alter system disconnect session ''' || sid || ',' || serial# || ''' immediate;' kill_session
- FROM gv$session a
- WHERE a.USERNAME = 'SYS'
- and a.STATUS = 'KILLED';
- -----方法3
- SELECT a.SID || ',' || a.SERIAL# || ',' ||
- (select spid
- from gv$process b
- where b.INST_ID = a.INST_ID
- and A.pid = b.pid) sessionid,
- 'alter system kill session ''' || sid || ',' || serial# || ''';' kill_session
- FROM gV$DETACHED_SESSION a;
- -----方法4
- SELECT INST_ID, spid, program, 'kill -9 ' || spid kill9
- FROM gv$process a
- WHERE (a.INST_ID, a.addr) in (select INST_ID, p.addr
- from gv$process p
- where pid <> 1
- minus
- select INST_ID, s.paddr
- from gv$session s)
- and a.PNAME is null;
- ---------------- rac 配置SSH互信
- sshUserSetup.sh在GI安装介质解压缩后的sshsetup目录下。下面两条命令在一个节点上执行即可,在root用户下执行:
- ./sshUserSetup.sh -user grid -hosts "raclhr-12cR1-N2 raclhr-12cR1-N1" -advanced exverify –confirm
- ./sshUserSetup.sh -user oracle -hosts "raclhr-12cR1-N2 raclhr-12cR1-N1" -advanced exverify -confirm
- -------- 脚本配置
- grep "^LoginGraceTime 0" /etc/ssh/sshd_config
- [ $? -ne 0 ] && { cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.org; echo "LoginGraceTime 0" >>/etc/ssh/sshd_config; }
- export hn=`hostname`
- export oth=RACDB2
- export p_pwd='/nfs/software/db/install/inst/sh/11g'
- su - grid -c "$p_pwd/sshUserSetup.sh -user grid -hosts $oth -noPromptPassphrase"
- su - grid -c "ssh $hn hostname"
- su - grid -c "ssh $oth hostname"
- su - oracle -c "$p_pwd/sshUserSetup.sh -user oracle -hosts $oth -noPromptPassphrase"
- su - oracle -c "ssh $hn hostname"
- su - oracle -c "ssh $oth hostname"
- ------分别配置grid和oracle用户的ssh
- -------- 手工配置
- ----------------------------------------------------------------------------------
- [root@ZFLHRDB1 : /]# su - oracle
- [oracle@ZFLHRDB1 ~]$ mkdir -p ~/.ssh
- [oracle@ZFLHRDB1 ~]$ chmod 700 ~/.ssh
- [oracle@ZFLHRDB1 ~]$ ssh-keygen -t rsa ->回车->回车->回车
- [oracle@ZFLHRDB1 ~]$ ssh-keygen -t dsa ->回车->回车->回车
- -----------------------------------------------------------------------------------
- [root@ZFLHRDB2 : /]# su - oracle
- [oracle@ZFLHRDB2 ~]$ mkdir ~/.ssh
- [oracle@ZFLHRDB2 ~]$ chmod 700 ~/.ssh
- [oracle@ZFLHRDB2 ~]$ ssh-keygen -t rsa ->回车->回车->回车
- [oracle@ZFLHRDB2 ~]$ ssh-keygen -t dsa ->回车->回车->回车
- -----------------------------------------------------------------------------------
- [oracle@ZFLHRDB1 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- [oracle@ZFLHRDB1 ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
- [oracle@ZFLHRDB1 ~]$ ssh ZFLHRDB2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ->输入ZFLHRDB2密码
- [oracle@ZFLHRDB1 ~]$ ssh ZFLHRDB2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys ->输入ZFLHRDB2密码
- [oracle@ZFLHRDB1 ~]$ scp ~/.ssh/authorized_keys ZFLHRDB2:~/.ssh/authorized_keys ->输入ZFLHRDB2密码
- -----------------------------------------------------------------------------------
- 测试两节点连通性:
- [oracle@ZFLHRDB1 ~]$ ssh ZFLHRDB1 date
- [oracle@ZFLHRDB1 ~]$ ssh ZFLHRDB2 date
- [oracle@ZFLHRDB1 ~]$ ssh ZFLHRDB1-priv date
- [oracle@ZFLHRDB1 ~]$ ssh ZFLHRDB2-priv date
- [oracle@ZFLHRDB2 ~]$ ssh ZFLHRDB1 date
- [oracle@ZFLHRDB2 ~]$ ssh ZFLHRDB2 date
- [oracle@ZFLHRDB2 ~]$ ssh ZFLHRDB1-priv date
- [oracle@ZFLHRDB2 ~]$ ssh ZFLHRDB2-priv date
- -----如何清除Shared Pool中某条SQL语句?
- 如果数据库版本为Oracle 10g以前,那么只能清空整个Shared Pool,命令为:“ALTER SYSTEM FLUSH SHARED_POOL;”。在Oracle 10g中提供了一个包DBMS_SHARED_POOL,该包可以实现该功能。若该包没有安装,则可以通过$ORACLE_HOME/rdbms/admin/dbmspool.sql进行安装。在Oracle 10.2.0.4中有BUG(MOS为:751876.1),需要通过设置事件来规避该问题,命令为:“ ALTER SESSION SET EVENTS '5614566 TRACE NAME CONTEXT FOREVER';”
- 使用这种方法,就可以精确的将一个SQL从共享池中删除,从而使得Oracle为这个SQL重新生成执行计划。这种方法只针对单个SQL语句,使得解决问题的同时不会造成任何的误伤。
- SYS@lhrdb> SELECT ADDRESS,HASH_VALUE FROM V$SQLAREA WHERE ROWNUM<=1;
- ADDRESS HASH_VALUE
- ---------------- ----------
- 0000000092D263D0 3231842444
- SYS@lhrdb> EXEC DBMS_SHARED_POOL.PURGE('0000000092D263D0,3231842444','C');
- PL/SQL procedure successfull
- --------------------------------------------- Linux 逻辑卷管理
- pvcreate /dev/sda4
- pvdisplay
- pvs
- vgcreate vg_orasoft /dev/sda4
- vgdisplay
- vgs
- lvcreate -n lv_orasoft_u01 -L 1G vg_orasoft
- lvdisplay
- lvs
- mkfs.ext4 /dev/vg_orasoft/lv_orasoft_u01
- mkdir /u11
- mount /dev/vg_orasoft/lv_orasoft_u01 /u11
- --mv /u01/* /u11/
- --扩展逻辑卷
- vgextend vg_orasoft /dev/sdb3
- --lvextend -L +9G /dev/vg_orasoft/lv_orasoft_u01
- lvextend -L 20G /dev/vg_orasoft/lv_orasoft_u01
- resize2fs /dev/vg_orasoft/lv_orasoft_u01 #更新文件系统
- --收缩逻辑卷
- lvreduce -L -4G /dev/vg_orasoft/lv_orasoft_u01
- --重命名逻辑卷
- lvrename /dev/vg_orasoft/lv_ora_soft_u01 /dev/vg_orasoft/lv_orasoft_u01
- --- /etc/fstab
- /dev/vg_orasoft/lv_orasoft_u01 /u01 ext4 defaults 0 0
- /dev/vg_orasoft/lv_orasoft_u02 /u02 ext4 defaults 0 0
- /dev/vg_orasoft/lv_orasoft_u03 /u03 ext4 defaults 0 0
- /dev/vg_orasoft/lv_oradata_u04 /u04 ext4 defaults 0 0
- ---找逻辑卷
- lvmdiskscan
- vgchange -ay
- --------------------------------------------- 查询表的历史统计信息
- SELECT D.OWNER,
- D.TABLE_NAME,
- TO_CHAR(D.STATS_UPDATE_TIME, 'YYYY-MM-DD HH24:MI:SS') STATS_UPDATE_TIME
- FROM DBA_TAB_STATS_HISTORY D
- WHERE D.TABLE_NAME IN ('TPCCBOKBAL', 'TPCCBOKBAL_TMP', 'TPCCBOKBALJN')
- ORDER BY D.owner,D.table_name, D.stats_update_time;
- SELECT B.OWNER,
- B.OBJECT_NAME TABLE_NAME,
- TO_CHAR(D.ANALYZETIME, 'YYYY-MM-DD HH24:MI:SS') LAST_ANALYZETIME,
- TO_CHAR(D.SAVTIME, 'YYYY-MM-DD HH24:MI:SS') CURR_ANALYZETIME,
- D.ROWCNT
- FROM SYS.WRI$_OPTSTAT_TAB_HISTORY D, DBA_OBJECTS B
- WHERE D.OBJ# = B.OBJECT_ID
- AND B.OBJECT_NAME IN
- ('TEST_STAT', 'TPCCBOKBAL_TMP', 'TPCCBOKBALJN', 'PK_TPCCBOKBAL')
- ORDER BY D.OBJ#, D.SAVTIME;
- ----------------------- 查询索引的历史统计信息
- SELECT B.OWNER,
- B.OBJECT_NAME INDEX_NAME,
- TO_CHAR(D.ANALYZETIME, 'YYYY-MM-DD HH24:MI:SS') LAST_ANALYZETIME,
- TO_CHAR(D.SAVTIME, 'YYYY-MM-DD HH24:MI:SS') CURR_ANALYZETIME,
- D.ROWCNT,
- D.BLEVEL,
- D.LEAFCNT,
- D.DISTKEY,
- D.CLUFAC
- FROM SYS.WRI$_OPTSTAT_IND_HISTORY D, DBA_OBJECTS B
- WHERE D.OBJ# = B.OBJECT_ID
- AND B.OBJECT_NAME IN ('IND_TEST
时间: 2024-10-23 18:08:02