oracle脚本
修改表名
alter table bedcprod.BEDC_SOLACCT rename to BEDC_SOLACCT_OLD;
------------------------------------------------------------------------------------------------------------
在查看数据的连接情况很有用,写完程序一边测试代码一边查看数据库连接的释放情况有助于分析优化出一个健壮的系统程序来。
1、查看当前的数据库连接数
select count(*) from v$process ; --当前的数据库连接数
2、数据库允许的最大连接数
select value from v$parameter where name ='processes'; --数据库允许的最大连接数
3、修改数据库最大连接数
alter system set processes = 300 scope = spfile; --修改最大连接数:
4、关闭/重启数据库
shutdown immediate; --关闭数据库
startup; --重启数据库
5、查看当前有哪些用户正在使用数据
select osuser, a.username, cpu_time/executions/1000000||'s', b.sql_text, machine
from v$session a, v$sqlarea b
where a.sql_address =b.address
order by cpu_time/executions desc; --查看当前有哪些用户正在使用数据
6、 --当前的session连接数
lsnrctl start
select count(*) from v$session --当前的session连接数
7、当前并发连接数
select count(*) from v$session where status='ACTIVE'; --并发连接数
8、数据库备份
su - oracle
---压缩文件
expdp chdc/chdc directory=DATA_PUMP_DIR dumpfile=chdc20211009.dmp
---解压缩文件
gunzip /opt/oracle/app/oracle/admin/orcl/dpdump/chdc20221101.dmp.gz
9、数据库导入 路径:/opt/oracle/app/oracle/admin/orcl/dpdump/
su - ora19c
--启用sql
sqlplus
--管理员权限登录
用户名:sys as sysdba
密码:oracle
密码:ora19c
查询当前数据库连接进程
select username,sid,serial#,paddr from v$session where username='CMS1';
杀掉进程
alter system kill session '1420,42024';
删除表空间
drop user CMS1 cascade;
----退出sqlplus
exit
-----导入数据
impdp cms1/cms1 directory=DATA_PUMP_DIR dumpfile=chdc20221101.dmp REMAP_SCHEMA=chdc:cms1
dpdump文件路径
/opt/oracle/app/oracle/admin/orcl/dpdump/
查询directory位置
select * from dba_directories;
--进入sqlplus
给用户设置密码
alter user cms1 identified by cms1;
给CMS1 设置 dba权限
GRANT DBA TO cms1;
------数据库用户被锁定ORA-28000: the account is locked
1,命令行登陆sqlplus
2,sysdba用户登录
3,alter user cms account unlock;
4,给用户设置密码:alter user cms identified by cms;
多表导出
expdp cms1/cms1 tables=FLW_VERSION,PORTAL_FUNC,PORTAL_MENU,FLW_DEFINE,FLW_SEARCHKEY,MULTILEVELDIC,FOREX_JYCODE,FOREX_CODE,FOREX_TRADING_CODE,PORTAL_ORGROLEFUNC dumpfile=cms10924lw_04.dmp directory=DATA_PUMP_DIR LOGFILE=cms10924lw_04.log
-----------------------------------
expdp 用户/密码(旧库)@数据库IP/数据库容器 directory=DUMPDIR dumpfile=v7prod20230726.dmp logfile=log_file_other.log
portal_orgrolefunc
多表导入
remap_schema当你从A用户导出的数据,想要导入到B用户中去,就使用这个:remap_schema=A:B
impdp cms1/cms directory=DATA_PUMP_DIR dumpfile=cms10918flw_02.dmp TABLE_EXISTS_ACTION=truncate REMAP_SCHEMA=cms1:cms TRANSFORM=segment_attributes:n
-----------------------------------------
--cmscw/cmscw@ORCLPDB1(@xxxxx用来指定Pdb容器)
impdp system/oracle@ORCLPDB1 directory=DUMPDIR dumpfile=bedc2.202305171734.dmp logfile=bedc_20230525.log table_exists_action=replace REMAP_SCHEMA=bedc:bedccw,bedc_jg:bedc_jgcw remap_tablespace='(BEDC_DATA:BEDCCW_DATA,SYSTEM:BEDCCW_DATA)'
********************************************************************************************
10.启动监听
(1) 以oracle身份登录数据库,命令:su - oracle
(2) 进入Sqlplus控制台,命令:sqlplus /nolog
(3) 以系统管理员登录,命令:connect / as sysdba
(4) 启动数据库,命令:startup
(5) 如果是关闭数据库,命令:shutdown immediate
(6) 退出sqlplus控制台,命令:exit
(7) 进入监听器控制台,命令:lsnrctl
(8) 启动监听器,命令:start
(9) 退出监听器控制台,命令:exit
v$process:
这个视图提供的信息,都是oracle服务进程的信息,没有客户端程序相关的信息
服务进程分两类,一是后台的,一是dedicate/shared server
pid, serial# 这是oracle分配的PID
spid 这才是操作系统的pid
program 这是服务进程对应的操作系统进程名
v$session:
这个视图主要提供的是一个数据库connect的信息,
主要是client端的信息,比如以下字段:
machine 在哪台机器上
terminal 使用什么终端
osuser 操作系统用户是谁
program 通过什么客户端程序,比如TOAD
process 操作系统分配给TOAD的进程号
logon_time 在什么时间
username 以什么oracle的帐号登录
command 执行了什么类型的SQL命令
sql_hash_value SQL语句信息
有一些是server端的信息:
paddr 即v$process中的server进程的addr
server 服务器是dedicate/shared
---------------------------------------------
---------------数据库锁表查询------
select c.sid,
c.serial#,
c.username,
c.osuser,
b.owner,
b.object_name,
a.locked_mode,
p.spid
from v$locked_object a, dba_objects b, v$session c, v$process p
where a.object_id = b.object_id
and a.session_id = c.sid
and c.paddr = p.addr;
--------------数据表解锁------------
alter system kill session 'sid, serial#' ;--填写对应的sid, serial#