1, Workload Load Management WLM
2,高版本数据泵导入到低版本报错
导出应该制定version,导入无变化
如:
expdp 'syssde/"************"' directory=DPDATA1 dumpfile=a4_sys_white_list_20200507.dmp logfile=a4_sys_white_list_20200507.log tables=A4_SYS_WHITE_LIST version=11.2.0.1.0
3,继续删除未正常删除的操作
ALTER TABLE NWSDE.TA_ROAD_NW DROP COLUMNS` CONTINUE;
说明:在进行表字段删除的时候,由于意外未完成删除,在使用该表的时候出现报错 ORA-12986 可执行该操作完成删除动作后恢复正常。
4,kill session 有三个参数
alter system kill session 'sid,serial,@sid' ;
alter system kill session '321,32132,@1' immediate;
5,修改用户名
方法一:所有版本
select user#,name from user$ where name='TEST';
update user$ set name ='TEST1' where user#=159;
commit;
alter system checkpoint;
alter system flush shared_pool;
alter user test1 identified by test1;
方法二:oracle 11.2.0.2之后版本
alter system set "_enable_rename_user"=true scope=spfile;
shutdown immediate;
startup restrict force;
alter user test rename to test1 identified by test1;
alter system disable restricted session;
conn test1/test1;
conn / as sysdba
alter system reset "_enable_rename_user";
shutdown immediate;
startup;
6,密码文件的变化(转载)
1 、 11g中口令文件并不能实现存放于asm共享访问,修改SYS密码,需要再每个RAC节点手动实施同步 ,同样备库的口令文件也要手动进行更新覆盖
2、12.1版本可以实现口令文件ASM共享存储,RAC中只需要一个节点执行alter user sys 就可以实现主库所有节点同步,这点是11g中无法实现。但是备库中口令文件依然需要手动同步主库的口令文件过来覆盖
3 、12.2版本oracle在口令文件ASM共享存储的前提下,实现了口令文件自动同步主备所有节点
原文链接:https://blog.csdn.net/lihuarongaini/article/details/101298385
7,impdp导入使用query
特殊情况:
根据条件导入测试表,remap_schema 加 query 条件 生效(已验证)
添加remap_table修改表名条件,query条件不生效
(仅供参考,未做验证)
8,vi乱码问题
已经设置字符集环境变量
export NLS_LANG=“simplified chinese_china.zhs16gbk”
但是在vi编辑文件的时候输入中文依然是乱码,此时可以通过vi中的set指令指定字符集来解决乱码问题
set termencoding=gbk
9,图形配置网络
nmtui
10,oracle 数据库 sql 执行计划
通过dbms_xplan.display_cursor(null,null,‘allstats last’)查看SQL的执行计划,SQL会真实执行(对应的缺点不再赘述),这种方法查看的执行计划有Predicate Information,无Statistics,查看的执行计划是准确的,并且有每一步真实处理行数和时间。 使用dbms_xplan.display_cursor(null,null,‘allstats last’)查看SQL的执行计划:
--需要确认statistics_level设置为ALL,否则SQL语句第一个关键字后就需要加上/*+ gather_plan_statistics */,我习惯用前者
show parameter statistics_level(一般数据库默认是TYPICAL)
alter session set statistics_level = ALL;
select a.empno, a.ename, b.dname, a.job, a.sal from emp a, dept b where a.deptno = b.deptno and empno = 7788;
select * from table(dbms_xplan.display_cursor(null,null,'allstats last'));
11,删除物化视图长时间删不掉,可以先执行
ALTER MATERIALIZED VIEW view_name DISABLE QUERY REWRITE REFRESH ON DEMAND;
再删除
12,查看基于某表的对象
set serveroutput on
begin
dbms_utility.get_dependency('TABLE', 'A5ADMIN','SYS_LANGUAGERESOURCE');
end;
/
13,12c中em的变化
打开em:
exec dbms_xdb_config.sethttpsport(5500); -- https
exec dbms_xdb_config.sethttpport(5505); -- http
关闭em:
exec dbms_xdb_config.sethttpsport(0); -- https
exec dbms_xdb_config.sethttpport(0); -- http
查看em端口:
select dbms_xdb_config.gethttpsport from dual; -- https
select dbms_xdb_config.gethttpport from dual; -- http
14,文件太多 无法rm删除
-bash: /bin/rm: Argument list too long
ls | xargs -n 10 rm -fr ls
15:统计数据泵数据
cat A5ADMIN.2021-04-01.log | grep 'rows' |awk '{print $7}' |awk '{sum+=$1}END{print sum}'
cat A5ADMIN.2021-04-01.log |grep export | grep GB | egrep -v 'KB|MB' |awk '{print $5}' |awk '{sum+=$1}END{print sum}'
cat A5ADMIN.2021-04-01.log |grep export | grep KB | egrep -v 'MB|GB' |awk '{print $5}' |awk '{sum+=$1}END{print sum}'
cat A5ADMIN.2021-04-01.log |grep export | grep MB | egrep -v 'KB|GB' |awk '{print $5}' |awk '{sum+=$1}END{print sum}'
16:Oracle 超进程
ps -ef|grep "oracleXXXX (LOCAL=NO)"|grep -v grep|awk '{print $2}'|xargs kill -9
17:修改job下次执行的时间
exec DBMS_JOB.CHANGE(2935,'PRO_K2FWlTJ;',to_date('2021-06-10 17:30:00','yyyy-mm-dd hh24:mi:ss'),'TRUNC(SYSDATE,'||Chr(39)||'MI'||Chr(39)||')+30/24/60');
DBMS_JOB.CHANGE( JOB IN BINARY_INTEGER,
what IN VARCHAR2 DEFAULT NULL,
next_date IN DATE DEFAULT NULL,
interval IN VARCHAR2 DEFAULT NULL,
instance IN BINARY_INTEGER DEFAULT NULL,
force IN BOOLEAN DEFAULT FALSE );
18,按日期删除文件
######删除固定日期前的文件及文件夹
find ./ -ctime +20 -print | xargs -n 100 rm -rf {} \;
find ./ -ctime +2 -print | xargs -n 100 rm -rf {} \;
find /databak/BOdev -ctime +20 -print | xargs -n 100 rm -rf {} \;
该命令会删除文件夹,所以在find后面的目录要注意路径的完整
######删除固定日期前的某个文件及文件夹
find ./ -name "名字" -ctime +10 -print | xargs -n 100 rm -rf {} \;
19,检查网络
netstat -antlp | grep 1521 | grep TIME_WAIT
netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’
20,查询library cache lock的blocker
SELECT s.INST_ID,s.sid, kglpnmod "Mode", kglpnreq "Req", SPID "OS Process"
FROM gv$session_wait w, x$kglpn p, gv$session s ,gv$process o
WHERE p.kglpnuse=s.saddr
AND kglpnhdl=w.p1raw
and w.event like '%library cache lock%'
and s.paddr=o.addr
order by 1,4
21,ORA-01704: string literal too long
在插入或者更新数据时,因数据太长导致的报错。
此时可以将长数据拆分两段或者更多段,先插入第一部分,后续部分使用||连接更新
update test set t = '第一部分' where id=1;
update test set t = t||'第二部分' where id=1;
update test set t = t||'第n部分' where id=1;
22,创建job
declare
job_id pls_integer;
begin
sys.dbms_job.submit(job => job_id,
what => 'DO_ALL;',
next_date => to_date('2021-11-22 21:00:00', 'yyyy-mm-dd hh24:mi:ss'),
interval =>'TRUNC(SYSDATE) + 1 + 21/(24)');
commit;
end;
/
23,关闭DV功能
查询功能开启状态
SELECT * FROM V$OPTION WHERE PARAMETER = 'Oracle Database Vault';
11g
关停所有实例,监听,dbconsole,集群软件也需要停用
SQL> SELECT * FROM V$OPTION WHERE PARAMETER = 'Oracle Database Vault';
PARAMETER VALUE
------------------------------ ------------------------------
Oracle Database Vault TRUE
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> !
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk dv_off ioracle
/usr/bin/ar d /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/libknlopt.a kzvidv.o
/usr/bin/ar cr /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/libknlopt.a /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/kzvndv.o
chmod 755 /u01/app/oracle/product/11.2.0/dbhome_1/bin
- Linking Oracle
rm -f /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/oracle
gcc -o /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/oracle -m32 -L/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/ -L/u01/app/oracle/product/11.2.0/dbhome_1/lib/ -L/u01/app/oracle/product/11.2.0/dbhome_1/lib/stubs/ -L/u01/app/oracle/product/11.2.0/dbhome_1/lib/ -lirc -lipgo -Wl,-E /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/opimai.o /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/ssoraed.o /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/ttcsoi.o -Wl,--whole-archive -lperfsrv11 -Wl,--no-whole-archive /u01/app/oracle/product/11.2.0/dbhome_1/lib/nautab.o /u01/app/oracle/product/11.2.0/dbhome_1/lib/naeet.o /u01/app/oracle/product/11.2.0/dbhome_1/lib/naect.o /u01/app/oracle/product/11.2.0/dbhome_1/lib/naedhs.o /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/config.o -lserver11 -lodm11 -lcell11 -lnnet11 -lskgxp11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lclient11 -lvsn11 -lcommon11 -lgeneric11 -lknlopt `if /usr/bin/ar tv /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/libknlopt.a | grep xsyeolap.o > /dev/null 2>&1 ; then echo "-loraolap11" ; fi` -lslax11 -lpls11 -lrt -lplp11 -lserver11 -lclient11 -lvsn11 -lcommon11 -lgeneric11 `if [ -f /u01/app/oracle/product/11.2.0/dbhome_1/lib/libavserver11.a ] ; then echo "-lavserver11" ; else echo "-lavstub11"; fi` `if [ -f /u01/app/oracle/product/11.2.0/dbhome_1/lib/libavclient11.a ] ; then echo "-lavclient11" ; fi` -lknlopt -lslax11 -lpls11 -lrt -lplp11 -ljavavm11 -lserver11 -lwwg `cat /u01/app/oracle/product/11.2.0/dbhome_1/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /u01/app/oracle/product/11.2.0/dbhome_1/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnnz11 -lzt11 -lztkg11 -lmm -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lztkg11 `cat /u01/app/oracle/product/11.2.0/dbhome_1/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /u01/app/oracle/product/11.2.0/dbhome_1/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnnz11 -lzt11 -lztkg11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 `if /usr/bin/ar tv /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/libknlopt.a | grep "kxmnsd.o" > /dev/null 2>&1 ; then echo " " ; else echo "-lordsdo11"; fi` -L/u01/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ -lctxc11 -lctx11 -lzx11 -lgx11 -lctx11 -lzx11 -lgx11 -lordimt11 -lclsra11 -ldbcfg11 -lhasgen11 -lskgxn2 -lnnz11 -lzt11 -lxml11 -locr11 -locrb11 -locrutl11 -lhasgen11 -lskgxn2 -lnnz11 -lzt11 -lxml11 -loraz -llzopro -lorabz2 -lipp_z -lipp_bz2 -lippdcemerged -lippsemerged -lippdcmerged -lippsmerged -lippcore -lippcpemerged -lippcpmerged -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lsnls11 -lunls11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lasmclnt11 -lcommon11 -lcore11 -laio `cat /u01/app/oracle/product/11.2.0/dbhome_1/lib/sysliblist` -Wl,-rpath,/u01/app/oracle/product/11.2.0/dbhome_1/lib -lm `cat /u01/app/oracle/product/11.2.0/dbhome_1/lib/sysliblist` -ldl -lm -L/u01/app/oracle/product/11.2.0/dbhome_1/lib
test ! -f /u01/app/oracle/product/11.2.0/dbhome_1/bin/oracle ||\
mv -f /u01/app/oracle/product/11.2.0/dbhome_1/bin/oracle /u01/app/oracle/product/11.2.0/dbhome_1/bin/oracleO
mv /u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/oracle /u01/app/oracle/product/11.2.0/dbhome_1/bin/oracle
chmod 6751 /u01/app/oracle/product/11.2.0/dbhome_1/bin/oracle
12c
使用dbv_owner(安装dv时的用户)执行
conn dbv_owner/dbv_owner
exec dbms_macadm.disable_dv;
重启数据库
重新启动dv
12C
conn dbv_owner/dbv_owner
exec dbms_macadm.enable_dv;
11g
进入$ORACLE_HOME/rdbms/lib下执行
make -f ins_rdbms.mk dv_on lbac_on ioracle
两种方法都需要重启数据库和监听。
24,Oracle的sqlplus在linux下退格键不可用
环境变量添加
stty erase ^h
25,windows下创建oracle数据库服务orcl
oradim.exe -new -sid orcl -startmode manual -spfile