=========密码设置为不过期========
过期的原因一般有两种可能:一.由于oracle11g中默认在default概要文件中设置了“PASSWORD_LIFE_TIME=180天”所导致。二.由于oracle11g中默认在default概要文件中设置了“FAILED_LOGIN_ATTEMPTS=10次”,当输入密码错误次数达到设置值将导致此问题。
如果是第一种情况解决方法如下: 1、查看用户的proifle是哪个,一般是default:
sql>SELECT username,PROFILE FROM dba_users;
2、查看指定概要文件(如default)的密码有效期设置:
sql>SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
3、将密码有效期由默认的180天修改成“无限制”:
sql>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
修改之后不需要重启动数据库,会立即生效。
4、修改后,还没有被提示ORA-28002警告的帐户不会再碰到同样的提示;
已经被提示的帐户必须再改一次密码,举例如下:
$sqlplus / as sysdba
sql> alter user smsc identified by <原来的密码> ----不用换新密码
oracle11g启动参数resource_limit无论设置为false还是true,密码有效期都是生效的,所以必须通过以上方式进行修改。以上的帐户名请根据实际使用的帐户名更改。
第二种情况的话你可以这样操作 1、查看用户的proifle是哪个,一般是default:
sql>SELECT username,PROFILE FROM dba_users;
2、查看指定概要文件(如default)的密码有效期设置:
sql>SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='FAILED_LOGIN_ATTEMPTS';
3、将尝试登录失败次数由默认的10次修改成“无限制”:
sql>ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;
4、修改后,还没有被提示ORA-28000警告的用户不会再碰到同样的提示;
已经被锁定的帐户必须解除锁定,举例如下:
$sqlplus / as sysdba
sql> alter user smsc identified by oracle account unlock;
5、修改后default profile应该如下:
sql> select * from dba_profiles WHERE dba_profiles.profile='DEFAULT';
PROFILE RESOURCE_NAME RESOURCE_TYPE LIMIT
------------------------------ -------------------------------- ------------- ----------------------
DEFAULT FAILED_LOGIN_ATTEMPTS PASSWORD UNLIMITED
DEFAULT PASSWORD_LIFE_TIME PASSWORD UNLIMITED
修改之后不需要重启动数据库,会立即生效。
如果出现ORA-28000 the account is locked.错误
alter user 用户名 account unlock;
=========数据导出=============
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y
2 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
3 将数据库中的表inner_notify、notify_staff_relat导出
exp aichannel/aichannel@TESTDB2 file= d:\datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)
4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=" where filed1 like '00%'"
数据的导入,imp使用的基本格式:imp[username[/password[@service]]]
将D:\daochu.dmp 中的数据导入 TEST数据库中。
imp system/manager@TEST file=d:\daochu.dmp
imp aichannel/aichannel@TEST full=y file=d:\datanewsmgnt.dmp ignore=y
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
1. 获取帮助
imp help=y
2. 导入一个完整数据库
imp system/manager file=bible_db log=dible_db full=y ignore=y
3. 导入一个或一组指定用户所属的全部表、索引和其他对象
imp system/manager file=seapark log=seapark fromuser=seapark imp system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)
4. 将一个用户所属的数据导入另一个用户
imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy imp system/manager file=tank log=tank fromuser=(seapark,amy) touser=(seapark1, amy1)
5. 导入一个表
imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)
6. 从多个文件导入
imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4) log=paycheck, filesize=1G full=y
7. 使用参数文件
imp system/manager parfile=bible_tables.parbible_tables.par参数文件:
#Import the sample tables used for the Oracle8i Database Administrator's Bible. fromuser=seapark touser=seapark_copy file=seapark log=seapark_import
8. 增量导入
imp system./manager inctype= RECTORE FULL=Y FILE=A
=========命令建库==========
1.用系统管理员登陆,我这里用户名是system,密码是manager
2.首先建立表空间(tablespaces),点击file->new->sql window
create tablespace MOF_TEMP //name
datafile 'D:\app\Administrator\oradata\orcl\MOF_TEMP.dbf' size 500M //---/oracle/oradata/orcl/portal01.dbf
autoextend on next 100M maxsize unlimited logging //自动扩展表空间
extent management local autoallocate
segment space management auto;
1) DATAFILE: 表空间数据文件存放路径
2) SIZE: 起初设置为200M
3) UNIFORM: 指定区尺寸为128k,如不指定,区尺寸默认为64k
4) 空间名称MOF_TEMP与 数据文件名称 MOF_TEMP.dbf 不要求相同,可随意命名.
5) AUTOEXTEND ON/OFF 表示启动/停止自动扩展表空间
6) alter database datafile ' D:\oracle\product\10.2.0\oradata\orcl\MOF_TEMP.dbf ' resize 500m;
//手动修改数据文件大小为 500M
3.然后建立用户
这里我推荐直接用sql window建立,点击file->new->sql window
-- Create the user
create user RSGL //创建用户名
identified by "RSGL" //创建密码
default tablespace RSGL //默认表空间
temporary tablespace TEMP //临时表空间(默认的)
profile DEFAULT //默认权限(下面给分配)
quota unlimited on rsgl; //该用户在ydrsgl表空间里的配额不限
-- Grant/Revoke role privileges
grant dba to RSGL; // 分配管理员权限
-- Grant/Revoke system privileges
grant unlimited tablespace to RSGL; //开放所有的表空间对此用户
=========基本命令==========
本机登录
sqlplus / as sysdba
删除user
drop user ×× cascade
说明: 删除了user,只是删除了该user下的schema objects,是不会删除相应的tablespace的。
删除tablespace
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;
正常关闭:关闭数据库在关闭前检查所有的连接,并且发出命令后不允许再有新的连接,在等所有用户断开连接后关闭数据库。在此方式下关闭的数据库下次启动时不需要任何恢复过程。
shutdown normal;
立即关闭:关闭数据库并不等待用户断开连接,而是由系统断开与用户的连接,然后关闭数据库。
shutdown immediate;
异常关闭:关闭数据库系统不做任何的检查与回退操作而直接将数据库现场撤消
shutdown abort;
=========自增列==========
create sequence AUTO_ADD --序列名 (AUTO_ADD 为系列名,随便取名)
increment by 1 --每次增加1
start with 1 --从1开始
nomaxvalue --没有最大值
nocache --没有缓存序列
再次,创建一个触发器:
create or replace trigger myProject /*----(myProject)触发器名称----*/
before insert on PROJECT_MANAGE /*----(PROJECT_MANAGE)表名----*/
for each row
begin
if (:new.PRODUCTIONID is null) then /*----(PRODUCTIONID)列名称----*/
select AUTO_ADD.nextval into :new.PRODUCTIONID from dual; /*----(AUTO_ADD)序列名----*//*----(PRODUCTIONID)列名称----*/
end if;
end;
这样就完成了给表PROJECT_MANAGE的PRODUCTIONID列设置为自动增长列的工作。