linux oracle 建库(oracle主键)
大家好,关于linux oracle 建库很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于oracle主键的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
如何手动创建oracle数据库
在LINUX平台上手动创建数据库(oracle 10g)(在一个oracle服务器上启动两个实例)
1.首先设置要创建的ORACLE的SID,如果在.bash_profile文件里设置里该变量,就不用设置了。
$echo$ORACEL_SID
mdy
如果没有设置,就手动设置,如果一个服务器上要运行多个ORACLE实例,也需要手动设置。
export ORACLE_SID=gcm
2.创建需要的诊断目录,这些目录都是ORACLE进程遇到错误或用户手动TRACE时需要的。
mkdir-p$ORACLE_BASE/admin/gcm/adump
mkdir-p$ORACLE_BASE/admin/gcm/bdump
mkdir-p$ORACLE_BASE/admin/gcm/cdump
mkdir-p$ORACLE_BASE/admin/gcm/udump
mkdir-p$ORACLE_BASE/admin/gcm/pfile
创建oracle的数据文件目录
mkdir-p$ORACLE_BASE/oradata/gcm
3.创建ORACLE的参数文件$ORACLE_HOME/dbs/initgcm.ora内容如下:
aq_tm_processes=0
audit_file_dest=/oracle/admin/gcm/adump
background_dump_dest=/oracle/admin/gcm/bdump
compatible=10.2.0.1.0
control_files=/oracle/oradata/gcm/control01.ctl,/oracle/oradata/gcm/control02.ctl,/oracle/oradata/gcm/control03.ctl
core_dump_dest=/oracle/admin/gcm/cdump
db_block_size=8192
db_domain=""
db_file_multiblock_read_count=16
db_name=gcm
instance_name=gcm
dispatchers="(PROTOCOL=TCP)(SERVICE=gcmXDB)"
job_queue_processes=10
nls_length_semantics=BYTE
open_cursors=300
pga_aggregate_target=94371840
processes=150
remote_login_passwordfile=EXCLUSIVE
resource_manager_plan=""
sessions=170
sga_target=285212672
undo_management=AUTO
undo_retention=900
undo_tablespace=UNDOTBS1
user_dump_dest=/oracle/admin/gcm/udump
4.创建密码文件
orapwd file=$ORACLE_HOME/dbs/orapwgcm password=admin entries=5 force=y
5.创建oracle的建库脚本 createdb.sql,内容如下:
create database gcm
MAXINSTANCES 1
MAXLOGHISTORY 1
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXDATAFILES 100
DATAFILE
'/oracle/oradata/gcm/system01.dbf' size 100m reuse autoextend on next 1m maxsize unlimited extent management local
sysaux datafile
'/oracle/oradata/gcm/sysaux01.dbf' size 100m reuse autoextend on next 1m maxsize unlimited
default temporary tablespace TEMP tempfile
'/oracle/oradata/gcm/temp01.dbf' size 20m reuse autoextend on next 640k maxsize unlimited
undo tablespace UNDOTBS1 datafile
'/oracle/oradata/gcm/undo01.dbf' size 20m reuse autoextend on next 5M maxsize unlimited
logfile
GROUP 1('/oracle/oradata/gcm/redo1.dbf') size 10m,
GROUP 2('/oracle/oradata/gcm/redo2.dbf') size 10m,
GROUP 3('/oracle/oradata/gcm/redo3.dbf') size 10m
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16
;
6.数据库创建完成后,再创建ORACLE的数据字典。
SQL>@/oracle/product/10g/rdbms/admin/catalog.sql
SQL>@/oracle/product/10g/rdbms/admin/catproc.sql
SQL>@/oracle/product/10g/rdbms/admin/catexp.sql
到此ORACLE手动创建过程就完成了
7.创建(新)用户:
create user gcm identified by onewavegcm;
username:新用户名的用户名
password:新用户的密码
也可以不创建新用户,而仍然用以前的用户,如:继续利用scott用户
8.创建表空间:
create tablespace gcm datafile'd:\data.dbf' size 300m;
tablespacename:表空间的名字
d:\data.dbf':表空间的存储位置
xxx表空间的大小,m单位为兆(M)
9.将空间分配给用户:
alter user gcm default tablespace gcm;
将名字为tablespacename的表空间分配给username
10.给用户授权:
grant connect,resource,dba to gcm;
11.然后再以楼主自己创建的用户登录,登录之后创建表即可。
conn username/password;
创建表用create table.
SELECT host_name, instance_name, version FROM v$instance;
select distinct username from v$session;
imp gcm/onewavegcm file=gcmtable.dmp full=y
12.修改监听配置文件listener.ora
gcm=
(DESCRIPTION_LIST=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL= IPC)(KEY= EXTPROC))
)
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL= TCP)(HOST= 219.141.133.x)(PORT= 1522))
)
)
)
SID_LIST_gcm=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME= gcm)
(ORACLE_HOME=/oracle/product/10g)
(SID_NAME= gcm)
)
)
13.启动实例
su oracle
export ORACLE_SID=boss
sqlplus>startup
exit
su oracle
export ORACLE_SID=gcm
sqlplus/ as sysdba
>startup
14.启动监听
su oracle
#lsnrctl start#listener1
#lsnrctl start gcm#listener2
如何在Linux环境下安装Oracle 数据库11g
因项目需求,需要在64位linux系统中安装Oracle 11g,在网上查了很多内容,结合自己的实际经验,终于安装成功,记录下来,分享给有需要的同志们,不谢哈!^_^
一、修改操作系统核心参数
在Root用户下执行以下步骤:
1)修改用户的SHELL的限制,修改/etc/security/limits.conf文件
输入命令:vi/etc/security/limits.conf,按i键进入编辑模式,将下列内容加入该文件。
?
1
2
3
4
5
6
7
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
编辑完成后按Esc键,输入“:wq”存盘退出
2)修改/etc/pam.d/login文件,输入命令:vi/etc/pam.d/login,按i键进入编辑模式,将下列内容加入该文件。
?
1
2
3
session required/lib/security/pam_limits.so
session required pam_limits.so
编辑完成后按Esc键,输入“:wq”存盘退出
3)修改linux内核,修改/etc/sysctl.conf文件,输入命令: vi/etc/sysctl.conf,按i键进入编辑模式,将下列内容加入该文件
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
fs.file-max= 6815744
fs.aio-max-nr= 1048576
kernel.shmall= 2097152
kernel.shmmax= 2147483648
kernel.shmmni= 4096
kernel.sem= 250 32000 100 128
net.ipv4.ip_local_port_range= 9000 65500
net.core.rmem_default= 4194304
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576
编辑完成后按Esc键,输入“:wq”存盘退出
4)要使/etc/sysctl.conf更改立即生效,执行以下命令。输入:sysctl-p显示如下:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
linux:~# sysctl-p
net.ipv4.icmp_echo_ignore_broadcasts= 1
net.ipv4.conf.all.rp_filter= 1
fs.file-max= 6815744
fs.aio-max-nr= 1048576
kernel.shmall= 2097152
kernel.shmmax= 2147483648
kernel.shmmni= 4096
kernel.sem= 250 32000 100 128
net.ipv4.ip_local_port_range= 9000 65500
net.core.rmem_default= 4194304
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576
5)编辑/etc/profile,输入命令:vi/etc/profile,按i键进入编辑模式,将下列内容加入该文件。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if [$USER="oracle" ]; then
if [$SHELL="/bin/ksh" ]; then
ulimit-p 16384
ulimit-n 65536
else
ulimit-u 16384-n 65536
fi
fi
编辑完成后按Esc键,输入“:wq”存盘退出
6)创建相关用户和组,作为软件安装和支持组的拥有者。
创建Oracle用户和密码,输入命令:
?
1
2
3
useradd-g oinstall-g dba-m oracle
passwd oracle
然后会让你输入密码,密码任意输入2次,但必须保持一致,回车确认。
7)创建数据库软件目录和数据文件存放目录,目录的位置,根据自己的情况来定,注意磁盘空间即可,这里我把其放到oracle用户下,例如:
输入命令:
?
1
2
3
4
5
6
7
mkdir/home/oracle/app
mkdir/home/oracle/app/oracle
mkdir/home/oracle/app/oradata
mkdir/home/oracle/app/oracle/product
8)更改目录属主为Oracle用户所有,输入命令:
?
1
chown-R oracle:oinstall/home/oracle/app
9)配置oracle用户的环境变量,首先,切换到新创建的oracle用户下,
输入:su– oracle,然后直接在输入: vi.bash_profile
按i编辑.bash_profile,进入编辑模式,增加以下内容:
?
1
2
3
4
5
6
7
8
9
export ORACLE_BASE=/home/oracle/app
export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
编辑完成后按Esc键,输入“:wq”存盘退出
二、安装过程
1)当上述系统要求操作全部完成后,注销系统,在图形界面以Oracle用户登陆。首先将下载的Oracle安装包复制到linux中,用SSH其他ftp工具拷贝。
打开一个终端,运行unzip命令解压oracle安装文件,如:
输入命令:
?
1
2
3
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
解压完成后 cd进入其解压后的目录database
输入命令:
cd database
使用ls命令可以查看解压后database所包含的文件,如下图:
2)执行安装,输入命令:./runInstaller
装到这一步,可以看到,可以查看到有很多的rpm包没有,我们可以从安装linux的光盘或ISO中(或去
D:\linux_oracle11g_Package)查找所缺的包,使用ftp上传到linux中,然后使用rpm–ivh xxx.rpm
--nodeps–force来进行安装(其中加上--nodeps-- force代表强制安装,是在直接使用rpm–ivh
xxx.rpm安装不成功的情况下用的)等到把包全部都安装好的情况下,再次在oracle图形界面中,执行安装过程2,下来在环境检查过程中,就通过
了。
安装过程中86%可能会遇到报错如出错问题(error in invoking target'mkldflags ntcontab.o nnfgt.o' of makefile)按照如下步骤顺序执行。
上传安装镜像rhel-server-6.1-x86_64-dvd.iso,
然后将镜像文件挂,如/mnt
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# mount-o loop rhel-server-6.1-x86_64-dvd.iso/mnt
# cd/mnt/Packages
# rpm-ivh glibc-common-2.12-1.25.el6.x86_64.rpm
# rpm-ivh kernel-headers-2.6.32-131.0.15.el6.x86_64.rpm
# rpm-ivh libgcc-4.4.5-6.el6.x86_64.rpm
# rpm-ivh glibc-2.12-1.25.el6.x86_64.rpm
# rpm-ivh libgomp-4.4.5-6.el6.x86_64.rpm
# rpm-ivh nscd-2.12-1.25.el6.x86_64.rpm
# rpm-ivh glibc-headers-2.12-1.25.el6.x86_64.rpm
# rpm-ivh glibc-devel-2.12-1.25.el6.x86_64.rpm
# rpm-ivh mpfr-2.4.1-6.el6.x86_64.rpm
# rpm-ivh ppl-0.10.2-11.el6.x86_64.rpm
# rpm-ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm
# rpm-ivh cpp-4.4.5-6.el6.x86_64.rpm
# rpm-ivh gcc-4.4.5-6.el6.x86_64.rpm
注:以上是安装gcc,软件安装顺序不能错。
?
1
2
3
4
5
6
7
******************************************
# rpm-ivh libstdc++-4.4.5-6.el6.x86_64.rpm
# rpm-ivh libstdc++-devel-4.4.5-6.el6.x86_64.rpm
# rpm-ivh gcc-c++-4.4.5-6.el6.x86_64.rpm
注:以上是安装gcc-c++
根据这个方法解决了错误。
安装完成后,系统会提示你需要用root权限执行2个shell脚本。按照其提示的路径,找到其所在的位置,如:我的就在/home/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh
和/home/oracle/oraInventory/orainstRoot.sh新开启一个终端,输入命令:
?
1
2
3
4
5
6
7
8
9
su– root
cd/home/oracle/app/oracle/product/11.2.0/dbhome_1
sh root.sh
cd/home/oracle/oraInventory
sh orainstRoot.sh
三、数据库建库
1)还是在oracle用户的图形界面oracle用户中,新开启一个终端,直接输入命令dbca会弹出如下界面。我们这里采用定制数据库。
我们应该怎样安装Oracle数据库
应该怎么样安装数据库,从安装软件到创建数据库?对于这个问题,或许有的人不屑一顾,因为他们觉得这没有丝毫问题;同时有另一部分人,觉得这是个大问题。在安装Oracle上,通常会有几种类型的人:完全抓不着头脑,不知道怎么安装,这通常是初学者,连Linux/Unix都不太熟悉。很少安装Oracle的人,但是知道对照文档一步一步操作,出了错也知道上google、baidu和metalink查找解决方案。 Oracle老手,安装数据库不需要任何文档,对每个步骤也很熟悉。对Oracle的安装非常熟悉,但是在安装时仍然按文档一步一步操作。对我个人来说,我是最后一种类型的人。我也自认为安装了不少的数据库,覆盖了大部分的平台和操作系统。但我安装的时候,仍然会不嫌麻烦的一步一步操作按文档操作。在安装数据库软件包括建库,基本上没有遇到过什么问题。因为我也见过很多朋友,被安装这一问题折腾得焦头烂额,特别是在安装RAC的时候,这里只是写一写我自己的一些做法,仅供参考,毕竟每个人都有自己的习惯和做法。本文主要描述Linux/Unix下的Oracle安装,不涉及Windows系统下的安装。我的习惯做法:平时注意收集安装文档,包括oracle online document(所谓的官方文档),metalink上的,还有IBM、HP这些公司与Oracle合作部门提供的文档。oracle online document中安装部分没事看一遍就可以了,但是metalink上很多文档详细地记录了版本的兼容性,安装时可能出现的问题以及解决办法等等,比如很实用的文档:《Oracle Database on Unix AIX,HP-UX,Linux,Mac OS X,Solaris,Tru64 Unix Operating Systems Installation and Configuration Requirements Quick Reference(8.0.5 to 11.2) [ID 169706.1]》、《Linux OS Requirements Reference List for Database Server [ID 851598.1]》、《Status of Certification of Oracle Clusterware with HACMP [ID 404474.1]》。而其他厂商的文档包括:《CookBook_V3.2_Oracle_9i_RAC_AIX5L》、《COOKBOOK_Oracle CTC RAC10g R2 on HP-UX》、《COOKBOOK-V2.0-10gRAC R2- ASM- AIX5L- SAN Storage》如此等等,还包括网上一些朋友自己撰写的安装文档。在参考这些文档时,需要注意的是,一定要明白每一个步骤其目的,有什么作用。根据以上提到的文档,进行整理,形成自己的文档。我在前面说到,我安装时一步一步按文档操作,是指的按我自己的文档,而不是去参考前面提到的若干文档。在自己的文档中,甚至提供了详细的命令,这样在安装的时候对某些不熟悉的命令不至于现查资料。深入理解文档中提到的各个参数、各个命令的作用。这不光是对安装,而对于Oracle数据库的更深入理解也是大有好处的。安装Oracle数据库时,在安装软件之前,通常有下面的操作:检查操作系统版本、相应组件是否安装,是否有安装好文档中指定的补丁,也包括c编译器或c语行环境,这些对Linux下的安装来说犹为重要。检查文件系统空间,特别是/tmp临时文件系统检查memory大小,特别是swap的大小。特别是在HP-UX下,swap的管理方式与其他系统有些不一样(此处不再细述),最好能够达到物理内存大小,对于特别大的物理内存,至少也要达到一半。检查主机时区,时间设置。这一步通常被很多人忽略。检查主机名设置,有的安装系统相当不负责任,直接将主机取名localhost。检查异步IO设置。检查网络设置,包括/etc/hosts文件的设置,特别是对RAC数据库犹为重要。检查内核参数,特别是共享内存、信号量、用户最多可运行进程数这些参数。 oracle用户创建后,注意编辑profile文件,设置相应的环境变量,注意不同的平台,相同意义的环境变量却有不同的名字,比如linux下的LD_LIBRARY_PATH和AIX下的LIBPATH。经常见到有的系统,oracle的PATH都没有设置,这样登录后操作相当不方便。对Oracle用户设置limit,通常是直接编辑/etc/security/limits.conf文件。给Oracle用户一些特定的权限,比如HP-UX下修改/etc/privgroup文件,10.2.0.4 for AIX下给用户CAP_NUMA_ATTACH, CAP_BYPASS_RAC_VMM, CAP_PROPAGATE这样的权限等等。对于RAC,还需要设置rsh或ssh至于安装的其他步骤,不是本文所要讲的主要内容,在此略过。还要提及一点,安装的时候对于目录的选择,可以按照OFA的标准做法,也可以按照使用部门的习惯,建议使用OFA。经常有见到一些乱七八糟的目录,让人好找,这种做法不太好。说到安装,不能不提到打补丁。在安装完成后,最好是打上较新的补丁包以及metlink上提到的一些建议打的补丁。而等到系统正式使用,发现问题再打补丁,其代价就昂贵得多。由于安装Oracle软件以及升级版本和打补丁,比较耗时,有的朋友就喜欢下面的做法:安装好软件,打上补丁,然后tar成一个包,保存在自己的存储介质上,下次在其他主机上安装时,直接用这个tar包解开。这种做法可以省一些安装软件的时间,但是需要tar包的环境是否一致。我曾遇到过下面的问题:某套新装9208的库,报ORA-600[504]错误,通过在metalink上搜索发现其最符合的一个BUG对应的补丁已经打上。其他类似环境下,包括有同样的补丁,却没有这样的错误。我找了一台操作系统完全一样的测试主机,安装与有问题库的版本完全一样的版本和补丁,却也没有这样的错误;接下来我将出问题的Oracle home复制到测试主机上,结果问题重现了,看起来问题在Oracle软件上。我尝试执行relink操作,居然失败。发现这份Oracle在relink包括有HA代码,实际上这是一个单机的环境,也没有安装HACMP。最后,使用rac_off选项,再重新relink,新生成的oracle,不再出现这样的问题。在有问题的生产主机上重新relink后,问题解决。出现问题的Oracle,就是通过解tar文件来安装的,在主机上我们也发现了以前安装时保留的tar文件。因此通过这种方式安装的,建议进行relink。下面再谈谈创建数据库的一些个人经验:尽量使用new database(9i)或者custom database(10g)这样的选项来创建库,建库时只安装必须的组件,这种做法有3个主要好处:更安全、更稳定、以后升级时所花的时间更少。创建数据库时注意选择正确的字符集。如果是选用模板创建数据库,注意模板有可能不与Oracle软件软件版本相匹配。同时在建库完成后需要运行相应的脚本,比如在安装了PSU的情况下,那么使用模板建库,得需要运行PSU带的脚本(具体参考PSU的README)。在打完补丁之后,在创建数据库,避免在升级软件之后还要升级数据库。建完库后,建议设置一下大体上合理的数据库参数。顶一下( 2)踩一下( 10)