oracle字符集文档

oracle字符集文档,第1张

Oracle字符集是一个字节数据的解释的符号集合 有大小之分 有相互的包容关系 ORACLE支持国家语言的体系结构允许你使用本地化语言来存储 处理 检索数据 它使数据库工具 错误消息 排序次序 日期 时间 货币 数字 和日历自动适应本地化语言和平台

一 Oracle字符集相关知识

参数说明

影响oracle数据库字符集最重要的参数是NLS_LANG参数

Oracle的字符集命名遵循以下命名规则:

<Language><bit size><encoding>

即: <语言><比特位数><编码>

比如: ZHS GBK表示采用GBK编码格式 位(两个字节)简体中文字符集

它的格式如下 NLS_LANG = language_territory charset

它有三个组成部分(语言 地域和字符集) 每个成分控制了NLS子集的特性

其中 Language 指定服务器消息的语言 territory 指定服务器的日期和数字格式 charset 指定字符集 如:AMERICAN _ AMERICA ZHS GBK

从NLS_LANG的组成我们可以看出 真正影响数据库字符集的其实是第三部分

所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据 前面影响的只是提示信息是中文还是英文

查看数据库字符集

这涉及三方面的字符集

一是 oracel server端的字符集

二是 oracle client端的字符集

三是 dmp文件的字符集

在做数据导入的时候 需要这三个字符集都一致才能正确导入

查询oracle server端的字符集

有很多种方法可以查出oracle server端的字符集

①比较直观的查询方法

SQL>select userenv( language ) from dual

查询结果如下: SIMPLIFIED CHINESE_CHINA ZHS GB

②查看有关字符集的所有参数

SELECT * FROM v$nls_parameters

结果中的NLS_CHARACTERSET ZHS GB

查看dmp文件的字符集

用oracle的exp工具导出的dmp文件也包含了字符集信息 dmp文件的第 和第 个字节记录了dmp文件的字符集 如果dmp文件不大 比如只有几M或几十M 可以用UltraEdit打开( 进制方式) 看第 第 个字节的内容 如 然后用以下SQL查出它对应的字符集:

SQL>select nls_charset_name(to_number( xxxx )) from dualZHS GBK

查询oracle client端的字符集

在windows平台下 就是注册表里面相应OracleHome的NLS_LANG 具体路径

Win+R àregedit à HKEY_LOCAL_MACHINESOFAREORACLE nls_lang 显示本地的字符集 这样就只影响这个窗口里面的环境变量

在unix平台下 就是环境变量NLS_LANG

$echo $NLS_LANG

AMERICAN_AMERICA ZHS GBK

如果检查的结果发现server端与client端字符集不一致 建议统一修改为同server端相同的字符集

建议

关于字符集客户端的字符集要求与服务器一致 才能正确显示数据库的非Ascii字符 如果多个设置存在的时候 alter session>环境变量>注册表>参数文件

客户端的字符集要求与服务器一致 才能正确显示数据库的非Ascii字符 如果多个设置存在的时候 alter session>环境变量>注册表>参数文件

字符集要求一致 但是语言设置却可以不同 语言设置建议用英文 如字符集是zhs gbk 则nls_lang可以是 American_America zhs gbk

补充内容

数据库服务器字符集

SELECT * FROM nls_database_parameters

客户端字符集环境

SELECT * FROM nls_instance_parameters

会话字符集环境

SELECT * FROM nls_session_parameters

二 关于oracle字符集修改

一旦数据库创建后 数据库的字符集理论上讲是不能改变的 因此 在设计和安装之初考虑使用哪一种字符集十分重要 根据Oracle的官方说明 字符集的转换是从子集到超集受支持 反之不行 如果两种字符集之间根本没有子集和超集的关系 那么字符集的转换是不受oracle支持的 对数据库 server而言 错误的修改字符集将会导致很多不可测的后果 可能会严重影响数据库的正常运行 所以在修改之前一定要确认两种字符集是否存在子集和超集的关系 一般来说 除非万不得已 我们不建议修改oracle数据库server端的字符集 特别说明 我们最常用的两种字符集ZHS GBK和 ZHS CGB 之间不存在子集和超集关系 因此理论上讲这两种字符集之间的相互转换不受支持

下例为把数据库的字符集从ZHS GBK修改为 ZHS GB

执行脚本

对于每个sql脚本的含义 请见注释①~⑥

startup mount

alter session set sql_trace=true

alter system enable restricted session

alter system set job_queue_processes=

alter system set aq_tm_processes=

alter database open

set linesize

alter database character set INTERNAL_USE ZHS GB

shutdown immediate

startup

相关参数注释

查看字符集参数 SELECT * FROM v$nls_parameters

①SQL_TRACE是Oracle提供的用于进行SQL跟踪的手段 是强有力的辅助诊断工具 在日常的数据库问题诊断和解决中 SQL_TRACE是非常常用的方法

sql_trace =true

在全局启用SQL_TRACE会导致所有进程的活动被跟踪 包括后台进程及所有用户进程 这通常会导致比较严重的性能问题 所以在生产环境中要谨慎使用 这个参数在 g之后是动态参数 可以随时调整 在某些诊断中非常有效

提示: 通过在全局启用sql_trace 我们可以跟踪到所有后台进程的活动 很多在文档中的抽象说明 通过跟踪文件的实时变化 我们可以清晰的看到各个进程之间的紧密协调

②在使用过程中对数据库进行限制

ALTER SYSTEM DISABLE RESTRICTED SESSION来取消数据库的受限制状态 在数据库受限制的过程中 只有对数据库拥有CREATE SESSION权限的用户才能够连接到数据库 这种状态有利于对数据库进行备份 恢复 导入 导出等 *** 作

③首先设置JOB_QUEUE_PROCESSES= Oracle会杀掉CJQ 及相应job进程

④aq_tm_processes值可选在 到 之间 代表是关闭队列监视

⑤利用INTERNAL_USE 关键字修改区域设置 目的是让Oracle数据库绕过了子集与超集的校验

⑥STARTUP NOMOUNT

lishixinzhi/Article/program/Oracle/201311/19105

Oracle 数据库迁移文档可以按如下格式进行写:

一、需求分析:

数据库所有文件(数据文件、日志文件、临时文件、控制文件)都存放在光纤存储中,但是光纤存储使用时间过长,超过3年,经常出现一些问题,而且光纤存储需要厂家维护,维护方面不是很方便,需要将数据库文件迁移到nas存储中。

二、 *** 作步骤:

1:具体需求

2:保存现有数据文件、控制文件、临时文件、日志文件位置

3:停止监听,并关闭数据库

4:移动所有数据文件、控制文件、临时文件、日志文件到新的位置

5:启动数据库到nomount状态,并更改控制文件位置,关闭数据库

6:启动数据库到mount状态

7:更改数据文件、临时文件、日志文件位置

7:打开数据库

8:重启验证

Concept

包含了 oracle 数据库里面的一些基本概念和原理, 比如 数据库逻辑结构, 物理结构, 实例结构, 优化器, 事务等. PDF 460页

Reference

包含了动态性能视图, 数据字典, 初始化参数等, 如果有参数不知道意思, 或者 v$视图字段信息模糊, 都可以从这里找到描述, 使用 html版的进去 ctrl+f查找比较快.还包含一些其他比如数据库的硬性限制, 等待事件的名称, 后台进程的描述等.

SQL Language Reference

这个文档中包含 oracle数据库的sql语法,(不包含plsql), 比如 create table 等.

Administrator’s Guide

各种管理oracle数据库的场景都在这里, 各种管理表, 索引, 表空间, redo等

Performance tuning guide

包含优化相关内容, 介绍优化方法, 数据库实例及sql的优化

Database Administration 页面

因为上面 administrator’s guide 已经描述了, 这里列举几个比较重要文档

Net Services Reference

文档说明了几个关于监听的重要文件, tnsnames.ora, listener.ora, sqlnet.ora 等

Backup and Recovery User’s Guide

描述了 rman 的各种用法

Application Development 页面

PL/SQL Packages and Types Reference

包括各种 oracle 自建的包和函数的功能, 参数描述. 如果有不了解的包, 可以在这里找到, 比如 dbms_stats.

PL/SQL language Reference

plsql 编程的基础概念, 语法等.

SQLJ Developer’s Guide

SQLJ, JAVA相关的内容

Workspace Manager Developer’s Guide

关于 oracle 的 workspace manager 版本化的一些东西

installing and upgrading 页面

需要安装 oracle 参照这里.

Grid Computing 页面

包括 oracle grid infrastructure 集群软件的各种文档

Automatic Storage Management Administrator’s Guide

Asm 相关文档

Real Application Clusters Administration and Development Guide

包括 RAC 环境下的数据库管理和维护的内容

Clusterware Administration and Deployment Guide

主要写了集群软件的各种工具和命令

High Availability 页面

包含各种高可用文档

Data Guard Broker 和 Data Guard Concepts and Administration

关于 Data guard 文档

Data Warehousing and Business Intelligence 页面

数据仓库和商业智能的相关技术

VLDB and Partitioning Guide

very large database, … partition 和 parallel 相关的内容

utilities

imp, expdp, sql*loader, 外部表, dbv, adrci, logminer

unstructured Data and Content Management 页面

非结构化数据相关, 比如 object type, xml type, oracle text

SecureFiles and Large Objects Developer’s Guide

讲述了 11g 中存储 lob 字段使用的 secure file 技术内容

Text Application Developer’s Guide 和 Text Reference


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9952657.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存