记录一下linux服务器Oracle数据库问题

Linux服务器关闭后,oracle数据库启动
su - oracle  -- 切换到oracle用户
如果是先启动了监听,先关闭监听
lsnrctl stop  -- 关闭监听
如果是没有启动监听,直接先启动数据库,再开启监听
sqlplus / as sysdba
startup -- 启动

关闭Linux服务器Oracle数据库
su - oracle  -- 切换到oracle用户
lsnrctl stop  -- 关闭监听
sqlplus / as sysdba
shutdown immediate ---停止oracle

Linux服务器创建Oracle数据库新用户:
su - oracle  -- 切换到oracle用户
sqlplus /nolog
conn /as sysdba
startup  -- 启用数据库
create user mdc_test identified by mdc_test;  -- 创建账号密码为mdc_test的用户
grant connect,resource,dba to mdc_test;  --  给这个用户赋权确保可以登录账户

如果用户被锁,解锁步骤如下:
su - oracle  -- 切换到oracle用户
sqlplus /nolog
conn /as sysdba
alter user 用户名 account unlock; -- 解锁数据库用户
alter user 用户名 identified by 密码; -- 更改用户密码

如何删除oracle用户

第一、要将删除的用户进行锁定,这句必须执行,如果不锁定的话,可能会导致杀死进程无效

        alter user 用户名 account lock;

第二、使用语句查看要删除用户的占用资源情况,因为如果占用资源,即状态为INACTIVE的进程,用户是无法删除的

        select saddr,sid,serial#,paddr,username,status from v$session where username = '用户名';

第三、杀死status为【 INACTIVE】的进程,sid和seria#值为该列下的数值

  alter system kill session 'sid,serial#';

因为基本上都有多个连接,所以可以根据条件生成SQL语句,进行批量终止连接当前用户session

        select 'alter system kill session ''' || sid || ',' || serial# || ''';' from v$session where username = '用户名';

上述SQL语句会直接生成杀掉进程的语句,直接复制出来进行使用即可

注:第二、第三两步中的 '用户名' 一定要全部英文大写

第四、删除用户,使用以下SQL语句(如果不成功,即还是会报01940错,因为还有 INACTIVE 进程没杀死)

  drop user 用户名 cascade;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值