ORACLE-工作常用配置及命令记录-导入sql、unl文件、查看数据库状态、修改字符集等

简介:

博文说明【前言】:

    本文将记录个人工作中常用的oracle配置命令及相关知识,在目前时间点【2017年5月16号】下,所掌握的技术水平有限,可能会存在不少知识理解不够深入或全面,望大家指出问题共同交流,在后续工作及学习中如发现本文内容与实际情况有所偏差,将会完善该博文内容。




正文:


1、cmd中执行sql脚本

sqlplus mcpdb/McPDBds00@10.133.200.230/cxydck1 @D:\浏览器下载-download\TS_COMPANY-副本.sql

上面这是在没有使用ora文件的情况下,如有ora文件,则10.133.200.230/cxydck1可以替换成自定义的名称

2、plsql中执行sql脚本

打开命令窗口-->@d:\database.sql  或者 start d:\database.sql


3、将unl文件数据导入oracle数据库


1、编辑sql.ctl文件,sql.ctl文件内容如下:


load data  
infile 'C:\Users\Administrator\Desktop\移动查勘上线测试\2016-10-26-更新分公司用户数据库\prpdbankaccount.txt'  
insert  
into table ts_bankaccount_bak2  
fields terminated by'#'  
trailing nullcols  
(  
    OPENBANKCODE,  
    OPENBANKNAME,  
    NAMECODE, 
    AREACODE, 
    USEFLAG   
)


注意:文件中的“#”代表的是unl文件中以#为分隔符,如果文件中是以|作为分隔符,则需要将#替换成|,括号中的5个字段指的是对应的5个字段。


 2、打开cmd,路径进入ctl和data.txt所在的路径,运行


sqlldr mcp31000000/mcp31000000@jspt control=sql.ctl log=log.log bad=bad.log errors=5000 
rows=500 bindsize=1048576


注意:

rows与bindsize相关,rows默认64行,如果不修改bindsize,只修改rows无效。

bindsize --(每次提交记录的缓冲区的大小,字节为单位,默认256000)


4、AIX服务器上使用topas,查看时出现:Terminal linux is unknown

解决方法:export TERM=vt100  然后在CRT终端上修改将terminal修改为VT100,输出结果后可以再次修改回linux


5、查看RAC集群资源信息

# srvctl  config database -d cxydck -a 【注意:-d后面接的是server_name】


6、查看RAC集群监听信息

# srvctl config listener -n ZB23YDCK1(主机名)


7、查看RAC集群连接信息

# srvctl  config database -d cxydck -t


8、查看RAC集群实例状态【cxydck为server_name】

# srvctl  status database -d cxydck  -v


9、查看节点应用程序状态: srvctl status nodeapps


10、列出所配置的数据库名称:srvctl config database


11、列出所配置的数据库的详细信息:srvctl config database -d cxydck -a


12、查看ASM磁盘:srvctl status asm -a


13、查看listener:srvctl status listener


14、查看磁盘空间信息

进grid用户下进入asmcmd,然后lsdg查看磁盘组空间


15、修改数据库默认字符集

查看当前数据库的字符集

Sql> select userenv('language') from dual;

错误操作:

改服务器端字符集,通过ORACLE的SQL PLUS命令窗口改

在SQL*PLUS中,以DBA登录 conn 用户名 as sysdba

然后执行以下命令

>shutdown immediate;    (把database停了,关闭数据库实例Instance)

>startup mount;        (把database重开去可更改情況,实例装载数据库)

>alter system enablerestricted session;

>alter system set job_queue_processes=0;

>alter system setaq_tm_processes=0;

>alter database open;                     (Instance打开数据库)

>alter database characterset utf8;

OR

>alter database characterset internal_use utf8;(AL32UTF8)

>shutdown immediate;

>startup;        (重开正常oracle)


注意:oracle修改字符集只能全局修改,不能只针对某一个用户进行修改,并且在建库的时候字符集是已经选好的,后期是不能被修改的。如果使用命令强制修改字符集,虽然在在表面,字符集是显示的被修改,但是实际上,数据库被不可逆的破坏了。

一般修改字符集的准确做法是新建实例,做迁移。也就是说上面这一种方法是错误的,正确的修改方法为:





16、死锁问题解决


一、数据库死锁的现象

程序在执行的过程中,点击确定或保存按钮,程序没有响应,也没有出现报错。

二、死锁的原理

当对于数据库某个表的某一列做更新或删除等操作,执行完毕后该条语句不提

交,另一条对于这一列数据做更新操作的语句在执行的时候就会处于等待状态,

此时的现象是这条语句一直在执行,但一直没有执行成功,也没有报错。

三、死锁的定位方法

通过检查数据库表,能够检查出是哪一条语句被死锁,产生死锁的机器是哪一台。

1)用dba用户执行以下语句

select username,lockwait,status,machine,program from v$session where sid in

(select session_id fromv$locked_object)

如果有输出的结果,则说明有死锁,且能看到死锁的机器是哪一台。字段说明:

Username:死锁语句所用的数据库用户;

Lockwait:死锁的状态,如果有内容表示被死锁。

Status:状态,active表示被死锁

Machine:死锁语句所在的机器。

Program:产生死锁的语句主要来自哪个应用程序。


2)用dba用户执行以下语句,可以查看到被死锁的语句。

select sql_text from v$sqlwhere hash_value in

(select sql_hash_value fromv$session where sid in

(select session_id fromv$locked_object))

四、死锁的解决方法

     一般情况下,只要将产生死锁的语句提交就可以了,但是在实际的执行过程中。用户可

能不知道产生死锁的语句是哪一句。可以将程序关闭并重新启动就可以了。

 经常在Oracle的使用过程中碰到这个问题,所以也总结了一点解决方法。

1)查找死锁的进程:

sqlplus "/assysdba" (sys/change_on_install)

SELECTs.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,

l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS

FROM V$LOCKED_OBJECTl,V$SESSION S WHERE l.SESSION_ID=S.SID;

2)kill掉这个死锁的进程:

alter system kill session ‘sid,serial#’; (其中sid=l.session_id)

3)如果还不能解决:

select pro.spid fromv$session ses,v$process pro where ses.sid=XX and ses.paddr=pro.addr;

  其中sid用死锁的sid替换: exit

ps -ef|grep spid

  其中spid是这个进程的进程号,kill掉这个Oracle进程



17、执行startup时,提示ORA-00845:MEMORY_TARGET not supported on this system


在重启oracle11G的时候出现这个错误,解决方法:

如上的内容就详细的解释了该错误是由于/dev/shm小于MEMORY_TARGET的大小,或者是/dev/shm根本就没有挂载,如果同时设置了MEMORY_TARGET和MENORY_MAX_TARGET,那么/dev/shm至少必须和MEMORY_MAX_TARGET的大小一致

因此在这里需要重新把这个目录进行挂载,在挂载的时候,添加内存参数,进入/etc/fstab文件

修改为:tmpfs                   /dev/shm                tmpfs   defaults,size=3G        0 0

[root@tp-oracle11g-1 ~]# df-h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda2              60G   18G  39G  31% /

tmpfs                 1.9G  909M 1009M 48% /dev/shm

/dev/sda1             194M   32M 152M  18% /boot

/dev/sda5              36G  177M  34G   1% /home

/dev/sr0              4.1G 4.1G     0 100% /media

提示无法umount的时候使用  fuser -km /dev/shm/  然后再umount

重新挂载之后的状态:

[root@tp-oracle11g-1 ~]# df-h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda2              60G   18G  39G  31% /

/dev/sda1             194M  32M  152M  18% /boot

/dev/sda5              36G  177M  34G   1% /home

/dev/sr0              4.1G  4.1G    0 100% /media

tmpfs                 3.0G     0 3.0G   0% /dev/shm

然后:

SQL> startup;

ORACLE instance started.

Total System Global Area1603411968 bytes

Fixed Size               2213776 bytes

Variable Size               939526256 bytes

Database Buffers        654311424 bytes

Redo Buffers                 7360512 bytes

Database mounted.

Database opened.

然后重新挂载,如果在卸载umount  /dev/shm的时候失败,无法卸载,那么输入:fuser–km /dev/shm,

然后再重新挂载mount –a 





结尾:



     感谢阅读,祝有收获的一天,谢谢!




      本文转自1清风揽月1  51CTO博客,原文链接:http://blog.51cto.com/watchmen/1926634,如需转载请自行联系原作者




相关文章
|
1月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
249 93
|
4月前
|
关系型数据库 MySQL 数据库连接
Django数据库配置避坑指南:从初始化到生产环境的实战优化
本文介绍了Django数据库配置与初始化实战,涵盖MySQL等主流数据库的配置方法及常见问题处理。内容包括数据库连接设置、驱动安装、配置检查、数据表生成、初始数据导入导出,并提供真实项目部署场景的操作步骤与示例代码,适用于开发、测试及生产环境搭建。
163 1
|
1月前
|
SQL 人工智能 Linux
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
241 5
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
|
22天前
|
SQL 存储 监控
SQL日志优化策略:提升数据库日志记录效率
通过以上方法结合起来运行调整方案, 可以显著地提升SQL环境下面向各种搜索引擎服务平台所需要满足标准条件下之数据库登记作业流程综合表现; 同时还能确保系统稳健运行并满越用户体验预期目标.
93 6
|
1月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
|
1月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
1月前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
292 7
|
1月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
328 4
|
1月前
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
173 8
|
2月前
|
SQL 人工智能 Java
用 LangChain4j+Ollama 打造 Text-to-SQL AI Agent,数据库想问就问
本文介绍了如何利用AI技术简化SQL查询操作,让不懂技术的用户也能轻松从数据库中获取信息。通过本地部署PostgreSQL数据库和Ollama模型,结合Java代码,实现将自然语言问题自动转换为SQL查询,并将结果以易懂的方式呈现。整个流程简单直观,适合初学者动手实践,同时也展示了AI在数据查询中的潜力与局限。
286 8

热门文章

最新文章

推荐镜像

更多