`
xitong
  • 浏览: 6157968 次
文章分类
社区版块
存档分类
最新评论

Oracle常用维护命令

 
阅读更多
常规:
oracle在sqlplus命令行下,执行完数据库操作以后,需要跟上commit才能生效。

主要监听两个端口,1521是数据库连接端口,8080是服务器端口

oracle默认安装完毕,会自带一个http服务器,以web的形式提供用户管理界面,该服务器端口8080与tomcat的默认端口一样,是导致tomcat启动不了的常见原因,我一般是修改tomcat的配置文件server.xml,把http1.1的端口改成8081。


系统维护:

登录

sqlplus username/password@ip:1521/orcl [as sysdba,sysoper]


如果数据库就是本机,则不用启动其他服务,如果数据库服务器是远程的,远程主机必须同时启动OracleOraDb10g_home1TNSListener监听服务。

不写地址默认是localhost 不写身份默认是sysoper
查询sid
select instance_name from v$instance
查询数据库版本

Select version FROM Product_component_version Where SUBSTR(PRODUCT,1,6)='Oracle';

查询字符集

Selectparameter,valuefromnls_database_parameterswhereparameterlike'NLS_CHARACTERSET';

查询启动状态:……

启动:……
停止:……
重启:……
查询监听:lsnrctl status--在cmd下而不是sqlplus下
启动监听:lsnrctl start--在cmd下而不是sqlplus下
停止监听:lsnrctl stop--在cmd下而不是sqlplus下
创建用户
create user weinianjie identified by "123" default tablespace sheep temporary tablespacetemp profile default;
grant resource,connect,dba to weinianjie;
查询当前用户

show user;

导出某用户的所有数据

cmd下exp user/password owner=user file="c:\aa.dmp"

导出某张表

cmd下exp user/password owner=user tables=(t1,t2) file="c:\aa.dmp"

导入dmp文件:

cmd下imp userid=用户名/密码@orcl file=d:\nc60.dmp full=y

命令行结果输出到某个文件

spool c:\s.txt

select * from mytable;

spool off

执行sql脚本

@aa.sql;


命名空间:
解释:
百度百科原话:
“ORACLE数据库被划分成称作为表空间的逻辑区域——形成ORACLE数据库的逻辑结构。一个ORACLE数据库能够有一个或多个Oracle,而一个表空间则对应着一个或多个物理的数据库文件。表空间是ORACLE数据库恢复的最小单位,容纳着许多数据库实体,如表、视图、索引、聚簇、回退段和临时段等。
  每个ORACLE数据库均有SYSTEM表空间,这是数据库创建时自动创建的。SYSTEM表空间必须总要保持联机,因为其包含着数据库运行所要求的基本信息(关于整个数据库的数据字典、联机求助机制、所有回退段、临时段和自举段、所有的用户数据库实体、其它ORACLE软件产品要求的表)。”
我的理解,表空间跟库的概念差不多,一个表空间对应一个或者多个物理文件,每个用户属于一个或多个表空间,其中有一个是默认的。连接数据库的时候不需要制定表空间,用户创建的对象会在用户默认的表空间里存放着。
命名空间定义了一组对象类型,在命名空间里,对象的名字必须是唯一的,当然,在不同的命名空间里,是可以使

用相同的的名字的。

下面的对象类型共享同一个命名空间:
? Tables
? Views
? Sequences
? Private synonyms
? Stand-alone procedures
? Stand-alone stored functions
? Packages
? Materialized views
? User-defined types

创建、查询和修改:

数据库文件查询
select * from sys.dba_data_files;

数据表空间
create tablespace sheep datafile 'c:/sheep.dbf' size 20m autoextend on;
临时表空间
create temporary tablespace sheep tempfile 'c:/sheep.dbf' size 20m autoextend on;
查询空间:
select tablespace_name from dba_tablespaces;
select tablespace_name from user_tablespaces;
查询表空间的物理情况:
select * from dba_data_files where tablespace_name='SYSTEM';--这里一定要是全大写的,哪怕你建

空间的时候没有使用大写
select * from dba_temp_files where tablespace_name='TEMP';--这里一定要是全大写的,哪怕你建空

间的时候没有使用大写
查询表空间内的表:

select table_name from dba_all_tables where tablespace_name='USERS';


查询表结构,不显示主键外键信息

desc mytable;


查询表主键和外键等

select a.constraint_name, a.column_name
from user_cons_columns a, user_constraints b
where a.constraint_name = b.constraint_name
and (b.constraint_type = 'P' or b.constraint_type = 'U')
and a.table_name = 'AA'-------大写

重命名字段

alter table t rename column t1 to t2;

重命名表

alter table old_table rename to new_table;

命令行下更新date类型字段(date_field=‘2011-10-05’,这样的语法在mysql可以,在oracle就不行了),正确的如下

update mytable set date_field=to_date('20111005','yyyymmdd');

删除:
删除主键:

alter table mytab drop primary key;

删除唯一键:
alter table mytab drop unique(mycolumn);


表:
查询当前用户空间的所有表和视图:

select tname from tab

查询当前用户空间的所有表:
select table_name from user_tables;
查询当前用户空间的所有视图:

select view_name from user_views;

查询视图创建语句:

select text from all_views where view_name='xxx';





序列:
查询当前用户空间的所有序列:
select squence_name from seq
创建序列
create sequence user_seq minvalue 1 maxvalue 99999 start with 1 increment by 1 nocache nocycle
使用序列
insert into user values(user_seq.nextval);
脚本:

--必须以begin开头

begin

for column_ in (select * from tb1) loop
insert into tb2 values(column_.field1);
end loop;
end;

/

最后面加/代表执行


java交互:
驱动名称:
oracle.jdbc.driver.OracleDriver
连接字符串:
jdbc:oracle:thin:@localhost:1521:xe
最后一个量是sid
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics