分类: 系统运维
2011-08-12 17:26:36
问题1:在oracle中,sid与service name这两个到底有什么不同,为什么有的连接在tnsname文件中显示为service name=.....,有的有显示为sid=....,并且有时把service name 改为sid之后就连接不上去了?答:打个比方,你的名字叫小明,但是你有很多外号。你父母叫你小明,但是朋友都叫你的外号。这里你的父母就是oracle实例,小明就是sid,service name就是你的外号。sid用于实例区分各个数据库,service name用于外部链接。
今天使用oradim -delete -sid [sidname]把实例给删除了,
使用 oradim -new -sid [sidname]给重新创建出来。
查看sid
$ echo $ORACLE_SID
ciefhr
查看SERVICE_NAME
SQL> select instance_name from v$instance
问题2:如何进入sqlplus下
答:# su – oracle
本地连接
$ sqlplus / as sysdba
远程连接(sys为用户名,)
$ sqlplus "sys/password@服务名 as sysdba"
1)新建一个名为 test的用户,密码为test2011,此用户所在表空间为testspace.,
2) 在该用户下建立一张姓名表,插入若干条记录,姓名表中包括 序号,姓名,年龄,查询出30岁以上的记录数。
3)删除一条记录
4)对该数据进行恢复(闪回或备份还原)
答: 问题3.pdf
问题4:Oracle查询用户表
一、查询TEST用户下的所有表,及其创建时间
SELECT OBJECT_NAME ,CREATED FROM ALL_OBJECTS WHERE OBJECT_TYPE='TABLE' and owNER='TEST'
二、查询当前用户下的所有表
SQL> SELECT * FROM USER_TABLES
三、查询TEST用户下的所有表
SELECT * FROM ALL_TABLES WHERE OWNER='TEST'
问题5: Oracle查询用户表空间
◆Oracle查询用户表空间:select * from user_all_tables
◆Oracle查询所有函数和储存过程:select * from user_source
◆Oracle查询所有用户:select * from all_users.select * from dba_users
◆Oracle查看当前用户连接:select * from v$Session
◆Oracle查看当前用户权限:select * from session_privs
◆Oracle查看用户表空间使用情况:
select a.file_id "FileNo",a.tablespace_name
"Tablespace_name",
a.bytes "Bytes",a.bytes-sum(nvl(b.bytes,0)) "Used",
sum(nvl(b.bytes,0)) "Free",
sum(nvl(b.bytes,0))/a.bytes*100 "%free"
from dba_data_files a, dba_free_space b
where a.file_id=b.file_id(+)
group by a.tablespace_name ,
a.file_id,a.bytes order by a.tablespace_name;
1. 复制表结构及其数据:
create table table_name_new as select * from table_name_old
2. 只复制表结构:
create table table_name_new as select * from table_name_old where 1=2;
或者:
create table table_name_new like table_name_old
3. 只复制表数据:
如果两个表结构一样:
insert into table_name_new select * from table_name_old
如果两个表结构不一样:
insert into table_name_new(column1,column2...) select column1,column2... from table_name_old