1、使用oracle用户登录,连接数据库
[oracle@wuzj ~]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Feb 26 12:06:29 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn /as sysdba
Connected.
//查看用户
SQL> select username,password from dba_users;
USERNAME PASSWORD
------------------------------ ------------------------------
USER1 BBE7786A584F9103
MGMT_VIEW 4F538DF5F344F348
SYS 8A8F025737A9097A
SYSTEM 970BAA5B81930A40
DBSNMP FFF45BB2C0C327EC
SYSMAN 2CA614501F09FCCC
OUTLN 4A3BA55E08595C81
MDSYS &n ......
随着时间的推移,有可能原来没有规划好的数据文件所在的盘空间已经不够了,或者我们有需要把一个datafile移动好其他的地方,这时候我们改如何操作呢?
这里有最简单的一个方法
1. offline数据文件所被包含的tablespace,
alter tablespace testts offline;
2. rename 原有的datafile指向新的路径
#cp /opt/oracle/oradata/orcl/testts01.dbf /opt/oracle/oradata/test/testts01.dbf
SQL>alter tablespace testts rename datafile ‘/opt/oracle/oradata/orcl/testts01.dbf’
to ‘/opt/oracle/oradata/test/testts01.dbf’;
或者用datafile 序号
alter tablespace testts rename datafile 3
to ‘/opt/oracle/oradata/test/testts01.dbf’;
3. online已经改好的tablespace
SQL> alter tablespace testts online;
自此操作完成。
......
Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。
执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,
DOS中可以执行时由于 在oracle 8i 中 安装目录\ora81\BIN被设置为全局路径,
该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
oracle用java编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。
SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导出功能。
下面介绍的是导入导出的实例。
数据导出:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
exp [email=system/manager@TEST]system/manager@TEST[/email] file=d:\daochu.dmp full=y
2 将数据库中system用户与sys用户的表导出
exp [email=system/manager@TEST]system/manager@TEST[/email] file=d:\daochu.dmp owner=(system,sys)
3 将数据库中的表inner_notify、notify_staff_relat导出
......
(1)创建 Oracle 组和用户帐户
例如:
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -m -g oinstall -G dba oracle
# id oracle
uid=501(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)
设置 oracle 帐户的口令:
passwd oracle
(2)创建目录
例如:
# mkdir -p /oracle
# chown -R oracle:oinstall /oracle
# chmod -R 775 /oracle
(3)配置 Linux 内核参数,修改后不用重启动更新: /sbin/sysctl -p
第一种:打开/etc/sysctl.conf 复制如下内容
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144
(4)oracle 用户的环境变量
以 oracle 身份登录,并通过在 .bash_profile 或 .profile(bash 或 ksh)中添加以下行,将
ORACLE_BASE 添加到登录配置文件(直接gedit /home/oracle/.bash_profile)
增加下列内容:
export ORACLE_BASE=/oracle
export ORA ......
create table TN_TEST(
username varchar2(32),
userpass varchar2(32),
version number
)
要求一:
TN_TEST表中字段version
每次修改TN_TEST表则讲version自动加一
建立触发器语句:
create trigger add_ver before update on TN_TEST for each row begin
:new.version:=:old.version+1;
end;
要求二:
用触发器和序列实现自增
/*首先创建序列*/
create sequence SEQ_TN_TEST increment by 1 start with 1 MAXVALUE 9999999
/*创建触发器实现自增*/
Create Trigger up_ver Before
Update On TN_TEST
For Each Row begin
select SEQ_TN_TEST.nextval into :new.version
from dual;
end up_ver;
/*触发器结束*/ ......
区别:
1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc",对于CHAR
(20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2
(20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。
2.CHAR的效率比VARCHAR2的效率稍高。
3.目前VARCHAR是VARCHAR2的同义词。工业标准的VARCHAR类型可以存储空字符串,但是oracle不这样做,尽管它保留以
后这样做的权利。Oracle自己开发了一个数据类型VARCHAR2,这个类型不是一个标准的VARCHAR,它将在数据库中varchar列可以存储
空字符串的特性改为存储NULL值。如果你想有向后兼容的能力,Oracle建议使用VARCHAR2而不是VARCHAR。
何时该用CHAR,何时该用varchar2?
CHAR与VARCHAR2是一对矛盾的统一体,两者是互补的关系.
VARCHAR2比CHAR节省空间,在效率上比CHAR会稍微差一些,即要想获得效率,就必须牺牲一定的空间,这也就是我们在数据库设计上常说的‘以空间换效率’。
VARCHAR2虽然比CHAR节省空间,但是如果一个VARCHAR2列经常被修改,而且每次被修改的数据的长度不同,这会引起&lsq ......