记得去年4月份的时候,为公司部署测试环境和UAT环境时,在红帽RHEL6 64位系统安装ORACLE 10g 64位数据库时遇到了许多小问题,当时匆匆忙忙也没记录一下这些问题,前几天在虚拟机安装ORACLE 64位 10g时,又有一些常见问题又遇到了,顺便整理一下这篇文章。也许在RHEL6 64版本上安装64位Oracle 10g 的问题是最多的,估计很多人都被这个虐过无数次(很多人都是Oracle虐我无数遍,我待Oracle如初恋)。从网上搜索关于这方面的内容就可见一斑。好,废话少说,正式进入正题。
步骤1:准备系统以及在虚拟机上设置共享目录DataBase,准备数据库安装介质。有些细节东西我可能会一笔带过,不清楚的可以看看我这篇文章Rhel-Server 5.5 安装ORACLE10
安装介质文件10201_database_linux_x86_64.cpio.gz,必须先用gunzip解压,然后用cpio解压cpio格式的文件。
步骤2:查看安装文档,在解压目录下打开welcome.html文件,点击“Installing Oracle Database”下的“Documentation”链接即可进入。安装前最好将安装文档初略看一遍,当然你也可以在安装过程中参考。
[root@bogon database]# firefox welcome.html
步骤3:检查硬件要求(Checking the Hardware Requirements)
官方文档对系统硬件的要求
#At least 512 MB of physical RAM
#The following table describes the relationship between installed RAM and the configured swap space requirement.
RAM Swap Space
Up to 512 MB 2 times the size of RAM
Between 1024 MB and 2048 MB 1.5 times the size of RAM
Between 2049 MB and 8192 MB Equal to the size of RAM
More than 8192 MB 0.75 times the size of RAM
#400 MB of disk space in the /tmp directory
#Between 1.5 GB and 3.5 GB of disk space for the Oracle software, depending on the installation type
#1.2 GB of disk space for a preconfigured database that uses file system storage (optional
内存检测:内存最低要求512M,如今不能满足这个条件的计算机的都是老古董了,虚拟机我分配的是2G内存,如下所示
登入oracle
sqlplus / as sysdba
启动oracle
startup
停止oracle
shutdown
创建新用户
create user username identified by password;
创建表空间
create tablespace tablespacename datafile '/mnt/nfs/oracle_db/test.dbf'size 50m;
给用户指定默认表空间
alter user username default tablespace tablespacename;
查询默认表空间
select username, default_tablespace defspace from dba_users where username=’username′;
查询表空间
select * from dba_tablespaces;
查看表空间是否自动增长
SELECT FILE_NAME,TABLESPACE_NAME,AUTOEXTENSIBLE FROM dba_data_files;
修改表空间为自动增长
ALTER DATABASE DATAFILE '... '| FileNo AUTOEXTEND ON | OFF NEXT 20M MAXSIZE 300M;
ALTER DATABASE DATAFILE 'c:\SmartDB01.ora' AUTOEXTEND ON; --设置数据文件自动增长
ALTER DATABASE DATAFILE 'c:\SmartDB02.ora' MAXSIZE UNLIMITED; --设置数据文件容量无限
给用户授权
grant create session,create table,unlimited tablespace to username;
授予用户dba权限
grant connect,resource,dba to username;
连接用户
conn username/password
彻底的删除表
删除表后,会被放入回收站
清除回收站的办法
purge table origenal_tableName;
purge index origenal_indexName;
查询垃圾信息,可以用如下SQL语句:
SELECT t.object_name,t.type ,t.original_name FROM user_recyclebin t;
或者
PURGE recyclebin;
删除Table不进入Recycle的方法:
drop table tableName purge;
常见问题
诡异的ORA-02289: sequence does not exist
今天被开发人员告知在应用用户下无法查询自己创建的sequence的nextval值。当执行select * from test.nextval时提示“ERROR
at line 1:ORA-02289: sequence does not exist”。于是我通过select sequence_name from user_sequences来判断该序列确实存
在。于是我询问开发人员创建sequence的语句,结果发现开发人员调用的语句是create sequence "test";问题就出在那个双引号下
。如果创建sequence的时候sequence name带了双引号,那么在user_sequences数据字典中并不会显示序列名为"test"而只会显示
test,如果要正确调用序列的nextval值则需要使用select * from "test".nextval即可,当然最好是避免在创建序列时在序列名上
附加双引号。
本文链接:http://www.cnblogs.com/xiaoyaodao/p/3251348.html,转载请注明。
注:本文为原创,作为学习交流使用,转载请标明作者及出处,作者保留追究法律责任的权力。
注:本文为原创,作为学习交流使用,转载请标明作者及出处,作者保留追究法律责任的权力。
本文链接:http://www.cnblogs.com/lzsu1989/p/3251669.html,转载请注明。