首页 > 数据库 >oracle常用命令+常见报错 ---不定期更新

oracle常用命令+常见报错 ---不定期更新

时间:2023-12-28 17:32:05浏览次数:39  
标签:## sql 用户 system --- 报错 常用命令 oracle alter

1、oracle中导入dmp文件语句
imp  用户名/密码 file=dmp文件在root用户下的目录  log=日志存放的文件名   grants=no  full=y

示例:
imp zr1234/zr1234 file=/home/backup/DJP_db_20210302.dmp log=imp_zr1234_311.log grants=no full=y
此数据库备份文件,是用exp命令导出的文件,可用imp命令导入,如上述示例所示
impdp  系统用户名/密码  文件所在目录  文件名  日志存放文件名  remap_schema=exp导出文件的用户名:要导入的用户名  transform=oid:n,segment_attributes:n

示例:
impdp system/Test.123456  directory=DUMPDIR  dumpfile=TEST.DUMP logfile=20210316imp.log remap_schema=Test:Test12345 transform=oid:n,segment_attributes:n
上述文件所在目录,和文件名都是用的oracle数据库配置好的变量DUMPDIR,TEST.DUMP,可直接配置文件绝对路径
impdp system/Test.123456  directory=/root/DBbak/  dumpfile=2023-12-28.dmp logfile=20210316imp.log remap_schema=Test:Test12345 transform=oid:n,segment_attributes:n

此备份文件是用expdp命令导出的,用impdp命令导入,如上
2、oracle中删除用户及用户下面的所有表信息:
##首先,登录oracle
su - oracle
sqlplus / as sysdba   进入SYS用户下; sqlplus "as sysdba"  这个命令可以进入想进入的用户下,输入对应用户名,密码就OK
然后运行drop user userName cascade;  (username就是对应要删除的用户名)
这个时候可能会报错:

oracle常用命令+常见报错 ---不定期更新_oracle

上述报错原因是,此删除的用户可能正在被程序使用

首先停掉对应服务进程,然后查看一下还有那些进程在占用此用户

select sid,serial# from v$session where username='userName';    ###同样username改为对应的要删除的用户名

oracle常用命令+常见报错 ---不定期更新_oracle_02

##可以看到有进程在使用此用户,需要运行下述命令,停掉对应进程
alter system kill session '110,31711';
alter system kill session '112,31069';
alter system kill session '135,59997';
alter system kill session '140,12142';
alter system kill session '146,12751';
alter system kill session '536,17808';
alter system kill session '561,54915';
###如上述需要一行一行删除
###然后重新运行删除用户命令
drop user userName cascade;  (username就是对应要删除的用户名)
##发现用户正常删除,OK

有时候我们服务没有关闭完,导致一直有数据库进程连接,kill调后还会出现,这时首先把该用户下锁表操作,然后再次kill,就OK

##锁表,用户test
alter user test account lock; 
用下述PLSQL删除该用户下进程:

oracle常用命令+常见报错 ---不定期更新_oracle_03

如上图,可以PLSQL查看进程,右边框可以选择查看哪个用户下进程,
比如这个我们就选择了所有用户下的sessions,这时我可以看到,我们要删除的用户下,是有进程的,
可以手动选择之后,右键选择kill,手动删除进程,稍后,点击空白地方右键选择refresh list,
然后看到我们要删除的用户下进程已经没有了,
这时,再运行命令drop user   username  cascade;删除用户,就可以正常删除了,
具体操作如下图:

oracle常用命令+常见报错 ---不定期更新_oracle_04

oracle常用命令+常见报错 ---不定期更新_oracle_05

oracle常用命令+常见报错 ---不定期更新_oracle_06

注: 还有一种情况,按照上述所有session都kill了,
但是最后还是有一个session一直显示killed状态,就是关闭不了,
这时查看一下,是不是该用户在PLSQL中有登录状态,正在登陆的话也是站用session的,
只要有session,删除用户就会报错,
这时,我们disconnect 用户的登录链接之后,刷新list,看到该用户下没有session了,重新尝试删除用户成功
3、oracle新建用户
###首先查看常规将用户表空间放置路径:
select name from v$datafile; 

oracle常用命令+常见报错 ---不定期更新_oracle_07

如上图,可以看到常用用户表空间路径为:E:\APP\ADMINISTRATOR\ORADATA\ORCL\
###运行下述语句,创建用户表空间:
CREATE TABLESPACE   test  datafile 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\testNS.dbf'  size 600M autoextend on next 50m maxsize unlimited;
##上述test为对应tablespace名称,然后后边的datafile为存放用户表空间位置
###然后创建用户
CREATE USER testUser IDENTIFIED BY abc DEFAULT TABLESPACE test;   创建用户 testUser ,密码为abc,指定用户表空间test
###给testUser用户授予对应角色权限
grant connect,resource,dba to testUser;
4、linux下oracle数据登录到非sys账号下方法:
sqlplus   username/password
例如要登录到test用户下,密码也是Test.123456,     sqlplus   test/Test.123456     
可以通过下面命令查看登录的当前用户:
desc user_users;
select username from user_users;
###由下图可知,oracle数据当前登录用户

oracle常用命令+常见报错 ---不定期更新_oracle_08

5、windows中,怎么修改oracle示例内存:
##首先登录oracle,   win+r  进入命令行界面
sqlplus  / as sysdba    ##进入oracle数据库
##查看现在示例内存:
show parameter sga; 
##修改占用内存大小:
alter system set sga_max_size= 3072m scope=spfile;
##再运行
alter system set sga_target=3072m  scope=spfile;

##然后重启oracle
shutdown  immediate;  ##关闭数据库(可能会耗时较长,耐心等待)
startup   ##启动
##再次查看示例占用内存
show parameter sga;   ##发现已经修改成功
6、oracle数据库备份数据库
###oracle dmp导出命令  ---运行这个导出命令,不需要进入oracle中,直接在打开的命令行执行就OK

expdp  数据库username/数据库password  directory=DUMPDIR  dumpfile=导出的dmp文件名  schemas=test(导出数据库备份文件用户)    logfile=日志名
##如下示例,进入命令行界面
> expdp  test/Test.123456  directory=DUMPDIR  dumpfile=test0818.dmp  schemas=test  logfile=test0818.log
##上述DUMPDIR是指oracle数据库配置好的变量DUMPDIR,如下图可以看到:

oracle常用命令+常见报错 ---不定期更新_oracle_09

###注意,运行导出备份命令前,需要对应导出用户有数据读写权限
grant read,write on directory DUMPDIR to senelec;
##如果没有上述权限,imp导入时,会报错
7、linux下重启Oracle
##查看监听状态:
lsnrctl status

##停止监听:
lsnrctl stop

##重启监听:
lsnrctl start

##停止数据库:
> shutdown  immediate ;

##启动数据库
> startup
##查看Oracle数据库版本
select * from v$version
8、Oracle开启日志归档
##查看是不是归档模式
sql> archive log list;   

##启动主动归档
sql> alter system set log_archive_start=true scope=spfile;

##设置归档路径
sql> alter system set log_archive_dest='location=/oracle/ora9/oradata/arch' scope=spfile;  
##如果归档到两个位置,则可以通过下边方法实现 ---视情况运行
sql> alter system set log_archive_dest_1='location=/oracle/ora9/oradata/arch1' scope=spfile;  
sql> alter system set log_archive_dest_2='location=/oracle/ora9/oradata/arch2' scope=spfile;  
##设置归档日志款式
sql> alter system set log_archive_format='arch_%d_%t_%r_%s.log' scope = spfile;
sql> shutdown immediate; 

##打开控制文件,不打开数据文件
sql> startup mount;  
##将数据库切换为归档模式
sql> alter database archivelog;
##将数据文件打开
sql> alter database open;
##查看此时是否处于归档模式
sql> archive log list;

##查询以确定数据库位于archivelog模式中且归档过程正在运行
sql> select log_mode from v$database;  
sql> select archiver from v$instance;

##日志切换
 sql> alter system switch logfile;
 查看:
 sql> select name from v$archived_log;

----按照上述操作startup mount;启动时可能会报错,如下图:

oracle常用命令+常见报错 ---不定期更新_oracle_10

解决方法:

oracle常用命令+常见报错 ---不定期更新_oracle_11

解决方法类似上图中所示,不同项目对应pfile路径可能不同,可根据实际情况自行修改
##上述运行后,重启Oracle
sql> shutdown immediate; 
sql> startup;

oracle常用命令+常见报错 ---不定期更新_oracle_12

9、linux命令行界面,oracle数据库,执行sql脚本
##切换到oracle用户下
su - oracle

##将要运行脚本上传到oracle用户路径下
##连接数据库
$sqlplus  username/password 
##执行/home/oracle目录下test.sql脚本
SQL>@/home/oracle/test.sql
SQL>exit;    --退出

如下截图:

oracle常用命令+常见报错 ---不定期更新_oracle_13

oracle常用命令+常见报错 ---不定期更新_oracle_14






标签:##,sql,用户,system,---,报错,常用命令,oracle,alter
From: https://blog.51cto.com/u_14175560/9017182

相关文章

  • sqli-labs(sql注入漏洞)靶场通关笔记(慢更新)
    sqli-labs(sql注入)靶场通关笔记sqli-labs这个靶场对于想学习和了解sql注入的小白来说(比如说像博主这样的菜菜),我也是开始打这个靶场,来具体的学习一下sql注入,靶场里面包含了很多的sql注入的情况,以及我们在sql注入的时候遇到的阻碍。sqli-labs第一关:第一步判断是否存在sql注入:1......
  • 【Lidar】Open3D点云K-Means聚类算法:基于距离的点云聚类(单木分割)附Python代码
    ​ 1K-Means算法介绍        K-means聚类算法是一种无监督学习算法,主要用于数据聚类。该算法的主要目标是找到一个数据点的划分,使得每个数据点与其所在簇的质心(即该簇所有数据点的均值)之间的平方距离之和最小。        在K-means聚类算法中,首先需要预定义簇......
  • Flink mysql-cdc连接器参数
    一、背景通过Flink同步mysql到iceberg中,任务一直在运行中,但是在目标表看不到数据。经排查发现jobmanager一直在做切片,日志如下:2023-12-2816:58:36.251[snapshot-splitting]INFOcom.ververica.cdc.connectors.mysql.source.assigners.ChunkSplitter[]-ChunkSplitterhas......
  • NX2306机电概念设计-仿真序列
    【写在每个笔记前面:个人学习记录,如有错误,烦请指正,不胜感激。】 【机电概念设计】→【自动化】→【仿真序列】 1、定义仿真序列就是让你在什么时间,实现什么运动。官方解释:定义基于时间的行为和基于事件的行为 2、基于时间的仿真序列(学习案例源于UG爱好者-撒盐哥)step1......
  • Linux系统操作---笔记大全(老男孩视频)
    视频课程老师博客:http://oldboy.blog.51cto.comhttps://www.oldboyedu.com/linux操作系统镜像下载地址:https://www.centos.org/     -----centos的官网https://mirrors.aliyun.com/   ----阿里云下载==============================================Linux操......
  • 19. 名词性从句-名词性从句的引导词
    名词性从句的引导词——按照从句的类型分的类一共分为3类,并且英语中所有的从句一定都是陈述句的形式——也就是引导词+主语+谓语的形式。1>That——当从句是陈述句时,并且that不充当任何成分,只是引导作用2>Whether——当从句是一般疑问句时。并且whether在从句中也不充当......
  • virt-manager 的 AT-SPI 服务警告org.a11y.Bus
    1、idea执行调试运行程序出现错误如下:(java:91797):dbind-WARNING**:16:39:56.530:AT-SPI:Errorretrievingaccessibilitybusaddress:org.freedesktop.DBus.Error.ServiceUnknown:Thenameorg.a11y.Buswasnotprovidedbyany.servicefiles修复问题:终端命令:sudo......
  • 嵌入式教学实验箱_数字信号处理实验箱_操作教程:5-16 灰度图像线性变换(LCD显示)
    一、实验目的学习灰度图像线性变换的原理,掌握图像的读取方法,并实现在LCD上显示线性变换前后的图像。二、实验原理图像线性变换一般成像系统只具有一定的亮度范围,亮度的最大值与最小值之比称为对比度。由于形成图像的系统亮度有限,常出现对比度不足的弊病,使人眼观看图像时视觉效果很......
  • 世微 AP2402 DC-DC降压恒流驱动IC 刹车灯 半亮 高亮瀑闪线路图
    产品描述AP2402是一款PWM工作模式,高效率、外围简单、内置功率管,适用于5-100V输入的高精度降压LED恒流驱动芯片。输出功率可达15W,电流1.5A。AP2402可实现三段功能切换,通过MODE1/2/3切换三种功能模式:全亮,半亮,爆闪,全亮/半亮/爆闪循环模式。AP2402工作频率固定在150KHZ左......
  • Kubernetes-集群卸载Rook-Ceph
    删除storageclass和pvc(卸载卷、删除卷声明等,根据实际情况修改)kubectldelete-frook/deploy/examples/csi/cephfs/pod.yamlkubectldelete-frook/deploy/examples/csi/cephfs/pvc.yamlkubectldelete-nrook-cephcephblockpoolreplicapoolkubectldelete-frook/deploy/......