存储结构
1、逻辑结构
操作系统不知道的结构,例如表空间。
2、物理结构
操作系统能够看到和操作的文件,存储在物理磁盘上。
3、恢复相关结构
例如重做日志,在操作系统错误、数据库实例错误、磁盘错误时恢复数据库。
继续阅读oracle ex版存储结构简述
存储结构
1、逻辑结构
操作系统不知道的结构,例如表空间。
2、物理结构
操作系统能够看到和操作的文件,存储在物理磁盘上。
3、恢复相关结构
例如重做日志,在操作系统错误、数据库实例错误、磁盘错误时恢复数据库。
继续阅读oracle ex版存储结构简述
oracle ex版虽然是正式版的简化版,但总体框架是相似的,在一些局部上有加加减减的不同而已。
一、内存结构
什么是Oracle instance?
每一个实例,是由一组后台进程和分配的内存所组成的。
为实例分配的内存又分为两部分,SGA和PGA。
System global area (SGA),系统全局区。是一个包含了数据缓冲和控制信息的共享内存区域。SGA被划分为若干个缓存区和数据池。
Program global area (PGA),程序全局区。是每个服务器进程(Server Process)使用的一块包含数据和控制信息的内存区域。PGA用来处理SQL语句和session information。
从图中可以看到SGA是所有进程共用的,PGA是每个响应客户端请求的进程都会分配一块自己的PGA内存区域。
继续阅读oracle ex版内存结构简述
一个典型的oralce目录结构如下:
/u01 └── oracle ├── admin (数据库管理文件位置,以实例划分) │ ├── mydb │ │ ├── adump (审计信息) │ │ ├── bdump (后台进程跟踪文件) │ │ ├── cdump (信息转储文件core dump) │ │ ├── dpdump (存放登录信息) │ │ ├── pfile (初始化参数文件) │ │ └── udump (用户SQL追踪文件) │ └── orcl │ ├── adump │ ├── bdump │ ├── cdump │ ├── dpdump │ ├── pfile │ └── udump ├── flash_recovery_area (用于flashback和数据恢复的管理) │ └── ORCL │ └── onlinelog ├── oradata (数据文件、控制文件、重做文件保存位置,以实例划分) │ ├── mydb │ └── orcl ├── oraInventory (oracle软件的产品信息) │ ├── Contents │ ├── ContentsXML │ ├── logs │ │ └── results │ │ └── db │ └── oui └── product └── 10.2.0 (程序版本号) └── db_1 (ORACLE_HOME环境变量路径,主目录) ├── assistants ├── bin (oracle的各种命令程序) ├── cdata ├── cfgtoollogs ├── clone ├── config ├── crs ├── css ├── ctx ├── dbs (实例的启动文件、密码文件位置) ├── demo ├── diagnostics ├── has ├── hs ├── install ├── inventory ├── javavm ├── jdbc ├── jdk ├── jlib ├── jre ├── ldap ├── lib ├── lib32 ├── localhost_mydb ├── localhost_orcl ├── log ├── md ├── mesg ├── mgw ├── network (监听和tns别名的配置文件) ├── nls ├── oc4j ├── odbc ├── olap ├── OPatch ├── opmn ├── oracore ├── ord ├── oui ├── owm ├── perl ├── plsql ├── precomp ├── racg ├── rdbms ├── relnotes ├── slax ├── sqlj ├── sqlplus ├── srvm ├── sysman ├── tg4ifmx ├── tg4ingr ├── tg4sybs ├── tg4tera ├── uix ├── wwg └── xdk
windows下有tree命令可以打印出树状目录结构,linux下也有这个命令。
1、windows下tree命令
cmd窗口中查看帮助:
tree /?
以图形显示驱动器或路径的文件夹结构。
TREE [drive:][path] [/F] [/A] /F 显示每个文件夹中文件的名称。 /A 使用 ASCII 字符,而不使用扩展字符。
使用tree /f > tree.txt命令,就可以把打印出的树状目录结构写入到tree.txt文件中了。
2、linux下tree命令
linux下的tree命令功能更强大,参数更多。
安装:
yum install tree
查看帮助:
tree --help
其中常用参数:
-a:打印全部文件。
-A:使用ASNI绘图字符显示树状图而非以ASCII字符组合(显示的树状图为实线不是虚线)。
-C:在文件和目录清单加上色彩,便于区分各种类型。
-d:只打印目录。
-L level:指定打印目录的深度(层级)。
-f:打印出每个文件、目录的绝对路径。
继续阅读windows和linux打印树状目录结构
导出前先查看系统的NLS_LANG设置:
echo $NLS_LANG
AMERICAN_AMERICA.ZHS16CGB231280
select userenv('language') from dual;
AMERICAN_AMERICA.ZHS16GBK
这两个值不同会报错:
EXP-00091: Exporting questionable statistics
问题产生的原因:
linux下用户环境变量语言集和oracle数据库中的环境变量语言集不同。
解决办法:
将linux下用户环境变量语言集和数据库设置成一样。
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
一、导出
有两种使用exp的方式:
1、交互式
执行exp
Username: //用户名 Password: //密码 Enter array fetch buffer size: 4096 > //导出缓冲区大小 Export file: expdat.dmp > //导出文件名称 (2)U(sers), or (3)T(ables): (2)U > //导出的单位是用户还是表 Export grants (yes/no): yes > //是否导出授权 Export table data (yes/no): yes > //是否导出表数据 Compress extents (yes/no): yes > no //是否压缩,这里不压缩
后面就刷刷的开始导出了。
2、一条命令方式
exp userid=nlcmp/nlcmp@nlcmp file=./20150305nlcmp.dmp log=./1.txt
如果加了full=y会把一些系统表也导出来。
继续阅读oracle exp/imp导出导入数据库
一、什么是oracle字符集
oracle字符集实质就是按照一定的字符编码方案,对一组特定的符号,分别赋予不同数值编码的集合。
影响oracle数据库字符集最重要的参数是NLS_LANG参数。
它的格式如下: NLS_LANG = language_territory.charset
它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。
其中:
Language:指定服务器消息的语言,影响提示信息是中文还是英文
Territory:指定服务器的日期和数字格式
Charset:指定字符集
如:AMERICAN_AMERICA.ZHS16GBK
从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分。
所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。
NLS_LANG参数是否是环境变量中的NLS_LANG呢?
并不是。oracle环境变量中的NLS_LANG是定义客户端的字符集。
比如环境变量NLS_LANG=AMERICAN_AMERICA.ZHS16GBK但是数据库三个实例的字符集可以分别是:AMERICAN_AMERICA.AL32UTF8、AMERICAN_AMERICA.WE8ISO8859P1、AMERICAN_AMERICA.ZHS16GBK
继续阅读oracle数据库字符集问题
oracle增加实例
手工登录多实例
oracle使用dbca命令可以很方便的添加实例,需要服务器启动到图形界面。
0、执行dbca命令
cd $ORACLE_HOME/bin
./dbca
点击下一步
1、创建数据库
Create Database 创建数据库
Configure Database Options 设置数据库选项
Delete a Database 删除数据库
Manage Templares 管理数据库模版
Configure Automatic Storage Management 配置自动存储管理
选择create a database,下一步
继续阅读oracle入门(4)
公司的java项目开始要求使用checkstyle规范。对代码中的包名、类名、变量名有强制规定大小写等等。
checkstyle是一个静态的代码分析工具。
checks.xml:http://pan.baidu.com/s/1hq5WCiK
先记一笔,反正我不是搞java的,^_^
oracle客户端连接数据库
oracle客户端可以通过配置tnsnames.ora来连接数据库的,比如P/L SQL Developer。还有其它的是通过JDBC去连的。
tnsnames.ora记录了要连接数据库的信息。
例如:
ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )
tns连接字符串的格式为:
<addressname> = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = <hostname>)(Port = <port>)) ) (CONNECT_DATA = (SERVICE_NAME = <sid>) ) )
注:addressname必须顶格写。如果是RAC模式,在ADDRESS_LIST下面添加多个ADDRESS
继续阅读tnsnames.ora和tnsping
在oracle自启动设置中,我们能够开机自启动oracle软件,实例,监听。
那么平时我们是用sqlplus sys/****** as sysdba命令来登录,启动脚本并不知道sys用户的密码,它是如何登录上去的呢?
经过查看脚本中是用sqlplus / as sysdba命令,它使用的是操作系统认证。使用这个命令登录,不需要sys用户密码,且登录后就是sys用户。
当oracle数据库的sys用户密码忘记的时候,可以通过操作系方式sqlplus / as sysdba进入数据库,然后执行alter user sys identified by xxx来修改sys用户密码。
对于执行sqlplus / as sysdba,要求操作用户在DBA用户组,如oracle用户可以执行此命令,而其他普通用户执行此命令时,会报权限不足的错误。
另外使用:
sqlplus /nolog;
conn / as sysdba;
也有和sqlplus / as sysdba同样的效果。