数据库
orcal数据库如何查找实列?
一、orcal数据库如何查找实列?
1、首先打开putty,输入host name,点击open。
2、输入‘su - oracle’,后按回车键,进入oracle。
3、输入‘lsnrctl start’,回车,启动监听。
4、监听启动后,继续输入‘export ORACLE_SID=‘实例名’,回车。
5、然后,输入‘sqlplus / as sysdba’,还是按回车键。
6、出现sql输入栏,输入‘startup’,回车。
7、然后界面会提示实例启动成功,并且能查看到实例。
二、orcal数据库表被锁了怎么解锁?
--1、查看数据库锁,诊断锁的来源及类型:
SELECT OBJECT_ID, SESSION_ID, LOCKED_MODE FROM V$LOCKED_OBJECT;
--2、找出数据库的serial#,以备杀死:
SELECT T2.USERNAME, T2.SID, T2.SERIAL#, T2.LOGON_TIME
FROM V$LOCKED_OBJECT T1, V$SESSION T2
WHERE T1.SESSION_ID = T2.SID
ORDER BY T2.LOGON_TIME;
--3、杀死该session
alter system kill session 'sid,serial#' ps: sid ,serial# --为步骤2中查出来的值
三、谁有ORCAL数据库安装与使用的详细知识?
安装过程中没有建立数据库吗?如果没有的话,那么需要创建数据库。否则就可以连接数据库了。用Oracle Sql Developer或者toad for oracle、plsqldeveloper之类的客户端都可以连接进oracle来进行操作。
四、orcal数据库安装完了的图标是什么样子?
如果你用sqlplus进入的话,图标是黄色十字架下面一个绿色的椭圆
五、orcal数据库宕机后如何使用控制文件对数据恢复?
只能通过备份的数据进行数据恢复
六、如何将EXCEL表格中的数据导入到ORCAL数据库中?
1.先把你的表存为.CSV文件2.打开PL/SQL,新建一张字段和你EXCEL一样的表3.上方Tools——Text Importer——open datafile(左上角)——选择你的CSV表,打开记得,勾选左侧Name In Header4.选择到Data To Oracle,在这里选择你要导入到ORACLE里的表和这张表的OWNER在右侧选择相应字段,如果对应的上,下面的Import就会亮,好了,每一列挨个点然后到表里SELECT吧,我一直这么用的,试试吧
七、orcal数据库中查询出平均成绩大于60分的同学的学号和平均成绩?
selectsid,avg(Score)as平均成绩 fromtable_name groupbysid havingavg(Score)>60
八、orcal归档数据库存了哪些内容?
orcal归档数据库存下载的数据日志包括静态和动态的数据,要访问这些数据,就必须要进行手动访问。
生产线历史数据归档是数据库运维的一项日常基本工作。在建表设计时,通常都将数据流水表(如:日志、用户登录历史,软件下载记录,用户属性更改历史表等)设计为范围分区表、间隔分区表(11G),当超过业务要求的保留范围时,此数据基本是静态数据且应用程序再不对其进行访问,但有可能会由于某些特殊要求需要手动查询。在这个情况下,都将其数据从生产库归档至历史库,并对其进行压缩保存,如果超出特殊要求查询的范围,那就直接将其导出压缩备份到磁带。
在Oracle数据库中,用做表数据归档操作的方法很多,如:exp/imp、expdp/impdp、传输表空间等方法,这些都是日常数据库维护可能使用到的,这些工具的使用方法这里不展开了,下面进入今天的主题,使用存储过程归档生产线历史表数据,先对其简单做下总结:
1、简单,不容易出错;
2、对其源库(这里就是生产库)来说,就是一条select查询语句,性能影响小;
3、数据从源库到目标库不需要落地,和dblink+impdp迁移数据的方法类似,节约导出数据所需空间(上百GB的表)及归档时间;
4、可监控其归档进度及归档记录数;
5、如果是跨机房传输,请监控好网络带宽流量。
6、......
操作流程:
1、在生产库维护用户的Schema下创建一张视图,视图中包含需要归档的表的分区:
create view log_table_p201209
as
select * from user01.log_table partition(P201209);
注:为什么要建视图? 因为通过dblink查询不能用 select * from table partition (partition_name).....这样的语句。
2、在历史库放归档数据的用户下(历史库操作都下面都在此用户下操作)创建数据归档状态表及序列-- Create table
create table data_archive_status
(
id NUMBER,
threadno NUMBER,
table_name VARCHAR2(60),
syncnum NUMBER,
state NUMBER,
starttime DATE,
synctime DATE,
remark VARCHAR2(2000)
);
-- Add comments to the columns
comment on column data_archive_progress.state
is '0:开始,1:打开、解析游标,2:提取数据,3:某个表同步完成,4:所有表全部完成,其他负数:错误编码';
-- Create sequence
create sequence seq_id
minvalue 1
maxvalue 9999999999999
start with 1
increment by 1
cache 20;
3、在历史库创建一个可以通过只读权限连接生产库的dblink,示例:
-- Create database link
create database link XXDB.LOCALDOMAIN
connect to readonly
identified by ""
using '(DESCRIPTION=
(LOAD_BALANCE=no)
(ADDRESS_LIST=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=172.16.XX.XX)
(PORT=1521)
)
(ADDRESS=
(PROTOCOL=TCP)
(HOST=172.16.XX.XX)
(PORT=1521)
)
)
(CONNECT_DATA=
(FAILOVER_MODE=
(TYPE=select)
(METHOD=basic)
(RETRIES=180)
(DELAY=5)
)
(SERVER=dedicated)
(SERVICE_NAME=XX_service)
)
)';
4、历史库创建一张与生产库相同表结构的表,表名建议改为带上归档数据标识
create tabel log_table_p201209(......);
5、 创建用于数据归档的存储过程:
create procedure p_log_table_p201209 as
--索引表
type u_type is table of log_table_p201209%rowtype index by pls_integer;
v_list u_type;
--定义数组,存放待同步的视图名称。
type varchar_arrary is table of varchar2(60) index by pls_integer;
v_remoteview_list varchar_arrary;
--定义一个引用索引
type cur_ref is ref cursor;
cur_data cur_ref;
--本地变量,记录SQL%ROWCOUNT
v_counter number := 0;
v_rowid rowid;
v_sqlcode varchar2(300) := null;
v_querystr varchar(1000) := null;
v_parse_elapsed_s date := null;
v_parse_elapsed_e date := null;
v_fetch_elapsed_s date := null;
v_fetch_elapsed_e date := null;
begin
--初始化数组(第1步中创建的视图)
v_remoteview_list(1) := 'zhanghui.log_table_p201209';
--循环同步每个分区表
for k in 1 .. v_remoteview_list.count loop
--添加一个同步任务记录
insert into data_archive_status
values
(seq_id.nextval,
k,
v_remoteview_list(k),
0,
0,
sysdate,
sysdate,
null)
returning rowid into v_rowid;
commit;
v_querystr := 'select /*+ rowid(t) */ * from ' || v_remoteview_list(k) ||
'@XXDB.LOCALDOMAIN t';
update data_archive_status t
set t.synctime = sysdate, t.state = 1
where rowid = v_rowid;
commit;
--记录打开、解析游标的时间长度。
v_parse_elapsed_s := sysdate;
open cur_data for v_querystr;
v_parse_elapsed_e := sysdate;
update data_archive_status
set synctime = sysdate,
state = 2,
remark = remark || '[' || v_remoteview_list(k) ||
':parse_elapsed=' ||
(v_parse_elapsed_e - v_parse_elapsed_s) || 'sec,'
where rowid = v_rowid;
commit;
v_counter := 0;
v_fetch_elapsed_s := sysdate;
--对打开的游标,进行循环同步。
loop
--使用Bulk Binding,一次处理10000条记录
fetch cur_data bulk collect
into v_list limit 10000;
forall i in 1 .. v_list.last
insert into log_table_p201209 values v_list
(i);
--记录当前同步的记录数
v_counter := v_counter + sql%rowcount;
update data_archive_status t
set t.syncnum = v_counter, t.synctime = sysdate
where rowid = v_rowid;
commit;
exit when cur_data%notfound;
end loop;
v_fetch_elapsed_e := sysdate;
--更新进度表,将当前分区完成时间记录到备注中。
update data_archive_status
set state = 3,
synctime = sysdate,
remark = remark || 'fetch_elapsed=' ||
round((v_fetch_elapsed_e - v_fetch_elapsed_s) * 24 * 60,
4) || 'min,syncnum=' || v_counter ||
',endtime= ' || to_char(sysdate, 'yyyymmddhh24miss') || ']'
where rowid = v_rowid;
commit;
close cur_data;
--更新进度表
update data_archive_status t set t.state = 4 where rowid = v_rowid;
commit;
end loop;
exception
when others then
v_sqlcode := sqlcode;
update data_archive_status
set synctime = sysdate, state = v_sqlcode
where rowid = v_rowid;
commit;
raise;
end;
6、创建压缩对象存储过程,由于move操作需要接近双倍的存储空间,所以压缩前请提前评估空间需求
create procedure p_compress_object(vObject_name varchar2, --对象
vPartition_name varchar2 default null, --分区名
vParallel int default 0, --并行度
vPctfree int default 0, --存储参数pctfree 不再考虑DML操作的设置为0
vTablespace varchar2 default null, --表空间
vOwner varchar2 default user, --对象拥有者
vType number --类型:0、table 1、index 2、 partition table 3、index partition
) Authid Current_User is
vSql varchar2(4000);
vSqlerrm varchar2(256);
v_sqlstring varchar2(4000);
begin
v_sqlstring := 'alter session set db_file_multiblock_read_count=128';
execute immediate v_sqlstring;
if vType = 0 then
begin
vSql := 'alter table ' || vOwner || '.' || vObject_name || ' move ' || case when vTablespace is null then null else 'tablespace ' || vTablespace end || ' pctfree ' || vPctfree || ' compress nologging ' || case when vParallel in (0, 1) then null else 'parallel ' || vParallel end;
execute immediate vSql;
end;
elsif vType = 1 then
begin
vSql := 'alter index ' || vOwner || '.' || vObject_name ||
' rebuild ' || case when vTablespace is null then null else 'tablespace ' || vTablespace end || ' pctfree ' || vPctfree || ' compress nologging ' || case when vParallel in (0, 1) then null else 'parallel ' || vParallel end;
execute immediate vSql;
end;
elsif vType = 2 then
begin
vSql := 'alter table ' || vOwner || '.' || vObject_name ||
' move partition ' || vPartition_name || case when vTablespace is null then null else ' tablespace ' || vTablespace end || ' pctfree ' || vPctfree || ' compress nologging ' || case when vParallel in (0, 1) then null else 'parallel ' || vParallel end;
execute immediate vSql;
end;
elsif vType = 3 then
begin
vSql := 'alter index ' || vOwner || '.' || vObject_name ||
' rebuild partition ' || vPartition_name || case when vTablespace is null then null else ' tablespace ' || vTablespace end || ' pctfree ' || vPctfree || ' compress nologging ' || case when vParallel in (0, 1) then null else 'parallel ' || vParallel end;
execute immediate vSql;
end;
end if;
exception
when others then
vSqlerrm := sqlerrm;
dbms_output.put_line(vSqlerrm||'|'||vSql);
end;
7、上述工作准备完成,确认历史库表空间情况,调用数据归档存储过程 p_log_table_p201209 ,处理完成后对数据进行压缩,调用存储过程 p_compress_object(....);
8、确认数据无误,drop掉生产库维护用户对应的视图及业务表的分区,释放对象占用空间(注意:检查分区表的索引是否为local,否则就.....).
九、orcal怎么查看连接数据库?
方法一:v$version
[sql] view plain copy
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
PL/SQL Release 11.1.0.7.0 - Production
CORE 11.1.0.7.0 Production
TNS for Linux: Version 11.1.0.7.0 - Production
NLSRTL Version 11.1.0.7.0 - Production
方法二:product_component_version
[sql] view plain copy
SQL> select * from product_component_version;
PRODUCT VERSION STATUS
---------------------------------------------------------------------------------------------
NLSRTL 11.1.0.7.0 Production
Oracle Database 11g Enterprise Edition 11.1.0.7.0 64bit Production
PL/SQL 11.1.0.7.0 Production
TNS for Linux: 11.1.0.7.0 Production
SQL>
方法三:dbms_output.put_line( dbms_db_version.version )
[sql] view plain copy
SQL> SET SERVEROUTPUT ON
SQL> EXEC dbms_output.put_line( dbms_db_version.version );
11
PL/SQL procedure successfully completed.
SQL>
拓展资料:
Oracle数据库:
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。
特点
1、完整的数据管理功能。
1)数据的大量性
2)数据的保存的持久性
3)数据的共享性
4)数据的可靠性
2、完备关系的产品。
1)信息准则---关系型DBMS的所有信息都应在逻辑上用一种方法,即表中的值显式地表示;
2)保证访问的准则
3)视图更新准则---只要形成视图的表中的数据变化了,相应的视图中的数据同时变化
4)数据物理性和逻辑性独立准则
3、分布式处理功能。
ORACLE数据库自第5版起就提供了分布式处理能力,到第7版就有比较完善的分布式数据库功能了,一个ORACLE分布式数据库由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的关系型产品构成。[2]
4、用ORACLE能轻松的实现数据仓库的操作。
这是一个技术发展的趋势,不在这里讨论。
优点
1、可用性强
2、可扩展性强
3、数据安全性强
4、稳定性强
十、如何卸载orcal?
可按如下方法卸载:
1、关闭oracle所有的服务。可以在windows的服务管理器中关闭;
2、打开注册表:regedit 打开路径: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices 删除该路径下的所有以oracle开始的服务名称,这个键是标识Oracle在windows下注册的各种服务!
3、打开注册表,找到路径: HKEY_LOCAL_MACHINESOFTWAREORACLE 删除该oracle目录,该目录下注册着Oracle数据库的软件安装信息。
4、删除注册的oracle事件日志,打开注册表 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEventlogApplication 删除注册表的以oracle开头的所有项目。
5、删除环境变量path中关于oracle的内容。 鼠标右键右单击“我的电脑-->属性-->高级-->环境变量-->PATH 变量。 删除Oracle在该值中的内容。注意:path中记录着一堆操作系统的目录,在windows中各个目录之间使用分号(;)隔开的,删除时注意。 建议:删除PATH环境变量中关于Oracle的值时,将该值全部拷贝到文本编辑器中,找到对应的Oracle的值,删除后,再拷贝修改的串,粘贴到PATH环境变量中,这样相对而言比较安全。
6、重新启动操作系统。 以上1~5个步骤操作完毕后,重新启动操作系统。
7、重启操作系统后各种Oracle相关的进程都不会加载了。这时删除Oracle_Home下的所有数据。(Oracle_Home指Oracle程序的安装目录)
8、删除C:Program Files下oracle目录。 (该目录视Oracle安装所在路径而定)
9、删除开始菜单下oracle项,如: C:Documents and SettingsAll Users「开始」菜单程序Oracle - Ora10g 不同的安装这个目录稍有不同。 如果不删除开始菜单下的Oracle相关菜单目录,没关系,这个不影响再次安装Oracle.当再次安装Oracle时,该菜单会被替换。 至此,Windows平台下Oracle就彻底卸载了。
热点信息
-
在Python中,要查看函数的用法,可以使用以下方法: 1. 使用内置函数help():在Python交互式环境中,可以直接输入help(函数名)来获取函数的帮助文档。例如,...
-
一、java 连接数据库 在当今信息时代,Java 是一种广泛应用的编程语言,尤其在与数据库进行交互的过程中发挥着重要作用。无论是在企业级应用开发还是...
-
一、idea连接mysql数据库 php connect_error) { die("连接失败: " . $conn->connect_error);}echo "成功连接到MySQL数据库!";// 关闭连接$conn->close();?> 二、idea连接mysql数据库连...
-
要在Python中安装modbus-tk库,您可以按照以下步骤进行操作: 1. 确保您已经安装了Python解释器。您可以从Python官方网站(https://www.python.org)下载和安装最新版本...