AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-218804

jrdba123's questions

Martin Hope
jrdba123
Asked: 2022-04-09 15:48:10 +0800 CST

Oracle 11gR2 - Expdp 完整数据库并排除某些表数据

  • 0

我们将使用数据泵迁移我们的数据库。

它将是完整的数据库导出,不包括某些表的数据。

但我们想对 2 个不同的表执行不同的操作。我们要导出这 2 个表(分别命名为 table3 和 table4)最近 1 年的数据。我该如何为此编写查询?我准备的parfile如下,我应该为这2个表添加哪些命令?

DUMPFILE=dbname_datefull.dmp
LOGFILE=dbname_datefulllog.log
FULL=Y
DIRECTORY=EXPORT_DATE
EXCLUDE=STATISTICS
EXCLUDE=TABLE_DATA:"= 'table1'"
EXCLUDE=TABLE_DATA:"= 'table2'"
--queryfortable3
--queryfortable4
FLASHBACK_TIME=SYSTIMESTAMP

同时,这个查询是否会减慢进程,是否推荐?

谢谢你。此致。

oracle oracle-11g-r2
  • 1 个回答
  • 625 Views
Martin Hope
jrdba123
Asked: 2022-02-14 10:14:38 +0800 CST

Oracle - 大表归档

  • 0

版本: Oracle 12cR2 EE

该表包含以下列类型: NUMBER、CLOB、NVARCHAR2、TIMESTAMP、VARCHAR2

表大小: 95GB

表格行数: 20M

表分区?不

表上的索引:表上只有一个主键作为索引。

依赖关系: “每一行之前(插入)”只有一个触发器作为对表的依赖项。

约束:有 3 个约束(其中 1 个是主键,其他是检查)。

我们要存档此表。但是,我无法决定如何为这么大的表进行归档。使用 CTAS 将某个日期之前的记录移动到新表中,然后在现有表中删除这些导入的记录,这将是一场噩梦。

我认为最好的方法是让表间隔按月分区(如果你有更好的解决方案,我愿意接受任何想法)。

几个术前和序列问题:

  1. 有没有办法预先找出在对这种大小的表进行分区期间会生成多少存档?
  2. 我们有机会提前计算过程的持续时间吗?
  3. 停止将在此过程中加载的其他数据库作业是否是一个不错的选择?
  4. 是否需要对操作或其他依赖项或触发器的主键索引进行更改?

对于后处理:

  1. 删除大分区时是否会导致数据库负载过重?

  2. 例如,是否可以设置这样的订单;我们可以在主表上只保留最近 3 个月或最近 6 个月的数据,并每月将较旧的分区移动到归档表中吗?迁移时只使用导出导入方式是否正确?

  3. 迁移的分区将从迁移过程中删除。这样做会不会在归档生成的基础上出现问题?

谢谢你。

此致。

oracle partitioning
  • 1 个回答
  • 71 Views
Martin Hope
jrdba123
Asked: 2021-12-04 04:17:44 +0800 CST

Oracle 12cR2 用户可以无特权选择表

  • 0

今天我注意到一件有趣的事情。考虑一个生产和测试数据库配备相同权限的系统。在生产数据库中,一个用户可以选择另一个用户下的表,而没有选择能力。但是,这个过程不会发生在测试数据库中。生产数据库中出现这种情况的原因可能是什么?

生产数据库权限:

ALTER ANY PROCEDURE
CREATE ANY CREDENTIAL
CREATE ANY JOB
CREATE ANY PROCEDURE
CREATE ANY RULE
CREATE ANY SEQUENCE
CREATE ANY TABLE
CREATE ANY TRIGGER
CREATE ANY TYPE
CREATE ANY VIEW
CREATE PROCEDURE
CREATE TABLE
CREATE TRIGGER
CREATE VIEW
DEBUG ANY PROCEDURE
EXECUTE ANY PROCEDURE
GRANT ANY PRIVILEGE
GRANT ANY ROLE



AQ_ADMINISTRATOR_ROLE
AUTHENTICATEDUSER
CONNECT
EXP_FULL_DATABASE
JAVA_ADMIN
JAVADEBUGPRIV
JAVA_DEPLOY
JAVAIDPRIV
JAVASYSPRIV
JAVAUSERPRIV


select * from dba_tab_privs where grantee='USER1' and owner='USER2' and table_name='TABLE_NAME_OWNED_BY_USER2' order by table_name, privilege;


no rows selected

但是 USER1 可以选择这个表。

此致,

oracle permissions
  • 1 个回答
  • 30 Views
Martin Hope
jrdba123
Asked: 2021-11-07 15:01:01 +0800 CST

Oracle 12c - 根据机器信息触发登录

  • 0

我想创建一个登录触发器。触发器将执行以下操作:

它将根据某些用户和某些机器信息阻止对数据库的访问。然后它会给用户一个信息消息,并将这个会话信息插入到一个表中。

例如;

用户: mike, john, eric, daisy, albert

机器: NEWMACH%

给用户的消息:您不能从机器 '||MACHINE|| 登录 '使用'|| 用户名

它将插入到表中的信息:用户名、osuser、机器、端口、终端、程序、模块、instance_id、sid、serial#

表名: DBADMINISTRATOR.LOGON_TBL

我有一个触发想法如下;

CREATE OR REPLACE TRIGGER DBADMINISTRATOR.LOGON_FILTER
AFTER LOGON
ON DATABASE
DECLARE
USERNAME varchar2 (200);
MACHINE varchar2 (200);
begin
...
...
if
...
then
raise_application_error(-20001,'You are not allowed to logon from machine '||MACHINE|| ' using '|| USERNAME);
end if;
end;
/

你能帮忙编写脚本吗?它会导致任何性能问题吗?

此致,

oracle trigger
  • 1 个回答
  • 143 Views
Martin Hope
jrdba123
Asked: 2021-09-21 04:13:08 +0800 CST

Oracle 11gR2 (11.2.0.4.0) - 删除和删除数据文件

  • 0

我们有一个包含 2000 个用户的数据库。

我们将删除所有剩余的模式,只留下 2 个最终用户,不包括内部(Oracle 维护)用户。

执行此操作后,数据库大小将大大减少。我们想先从数据库中删除所有未使用的数据文件,然后再从服务器中物理删除。

可以处理吗?我们如何计划这个操作?你能帮忙给出确切的命令吗?

亲切的问候,

oracle oracle-11g-r2
  • 1 个回答
  • 71 Views
Martin Hope
jrdba123
Asked: 2021-06-04 07:50:55 +0800 CST

Oracle Linux 6.10 - 更改 Oracle 用户的 ID 和 GID

  • 1

操作系统:Oracle Linux 6.10

数据库版本:12cR1

我将从 NFS 共享磁盘为 preprod 服务器备份和恢复。但是,生产服务器(生产服务器上的共享磁盘)上的 oracle 用户的 ID 和 GID 与 preprod 服务器不同。为此,我需要更改 ID 和 GID 信息,否则我无法在 preprod 服务器上看到备份文件。但是,当我这样做时,preprod 服务器上的数据文件、oracle home 和其他现有所有权将会出现问题。如何以最少的问题执行此操作?只要 preprod 服务器上的停机时间不会太长,就可以了。

oracle backup
  • 1 个回答
  • 110 Views
Martin Hope
jrdba123
Asked: 2021-04-07 05:15:20 +0800 CST

Oracle 12cR1 - 没有重置日志的重复数据库

  • 0
Database version: Oracle 12cR1
Operating system: Oracle Linux 7.x
ASM: yes

复制脚本:

cat duplicatetodisaster.sh

ORACLE_UNQNAME=xxx
ORACLE_SID=xxx
ORACLE_HOME=xxx


rman target sys/***@PROD auxiliary sys/***@DRC <<EOF
run {
allocate channel prmy1 type disk;
allocate channel prmy2 type disk;
allocate channel prmy3 type disk;
allocate channel prmy4 type disk;
allocate auxiliary channel stby1 type disk;
allocate auxiliary channel stby2 type disk;
allocate auxiliary channel stby3 type disk;
allocate auxiliary channel stby4 type disk;
duplicate target database to 'db_name' noopen from active database;
}
exit;
EOF

我们正在尝试使用日志传送方法创建一个灾难数据库。基本逻辑;生产数据库将被复制,并且将创建一个以挂载模式继续的灾难数据库。然后,从生产数据库传输的归档日志将由灾难数据库恢复,并确保其连续性。

正如您在我分享的 rman 脚本中看到的那样;我试图通过添加 noopen 参数来阻止数据库执行 resetlogs,但在恢复和恢复成功完成后,控制文件仍然创建并重置数据库。因此,数据库中的所有化身、DBID 参数以及使其与生产数据库保持同步的所有内容都被破坏了。基于此,传输的归档日志无法恢复,无法保持连续性。我怎样才能防止这种情况?

下面,我分享一下 resetlogs 在警报日志中的确切位置:

Completed: CREATE CONTROLFILE REUSE SET DATABASE "DB_NAME" RESETLOGS ARCHIVELOG
  MAXLOGFILES    192
  MAXLOGMEMBERS      3
  MAXDATAFILES     1024
  MAXINSTANCES    32
  MAXLOGHISTORY     4382
 LOGFILE
  GROUP  11  SIZE 1536 M ,
  GROUP  12  SIZE 1536 M ,
  GROUP  13  SIZE 1536 M
 DATAFILE
  '+DATA/.../.../system...'
 CHARACTER SET WE8ISO8859P9

另一个问题;大约有 250 个数据文件,为什么单个数据文件会发生这种情况......

此致,

oracle restore
  • 1 个回答
  • 121 Views
Martin Hope
jrdba123
Asked: 2021-02-07 17:27:17 +0800 CST

Oracle 11gR2 - 动态注册

  • 0

数据库版本:Oracle 11gR2

我们想使用带有 off 选项的 DYNAMIC_REGISTRATION_LISTENER 参数。

我们的 listener.ora 文件是这样的:

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )



SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
      (SID_NAME = oracle)
    )
  )


ADR_BASE_LISTENER = /u01/app/oracle

DYNAMIC_REGISTRATION_LISTENER = OFF

但是当我们使用这个参数时,我们的web服务请求无法连接到数据库。

SQL> SELECT dbms_xdb.gethttpport FROM dual;

GETHTTPPORT
-----------
       3010

没有这个参数:

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                07-FEB-2021 03:21:59
Uptime                    0 days 0 hr. 2 min. 51 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=3010))(Presentation=HTTP)(Session=RAW))

使用此参数:

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                07-FEB-2021 03:21:59
Uptime                    0 days 0 hr. 2 min. 51 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

我们需要使用这个参数。还需要连接 Web 服务。这怎么可能?

我找不到任何明确的解决方案。

此致,

oracle oracle-11g-r2
  • 1 个回答
  • 190 Views
Martin Hope
jrdba123
Asked: 2020-11-18 01:54:34 +0800 CST

Oracle 12cR2 - 映像副本备份方案

  • 0

备份类型:映像副本。

场景:我想要 1 个完整数据库 + 6 个增量备份,并在存储上保留最近 7 天的备份。

这是我的脚本:

RUN {

allocate channel c1 device type disk format '/path/%U';

allocate channel c2 device type disk format '/path/%U';

allocate channel c3 device type disk format '/path/%U';

allocate channel c4 device type disk format '/path/%U';

allocate channel c5 device type disk format '/path/%U';

allocate channel c6 device type disk format '/path/%U';

allocate channel c7 device type disk format '/path/%U';

allocate channel c8 device type disk format '/path/%U';

CROSSCHECK ARCHIVELOG ALL;

CROSSCHECK BACKUP;

CROSSCHECK BACKUPSET;

CROSSCHECK COPY;

DELETE NOPROMPT EXPIRED ARCHIVELOG ALL;

DELETE NOPROMPT EXPIRED BACKUP;

DELETE NOPROMPT EXPIRED BACKUPSET;

DELETE NOPROMPT EXPIRED COPY;

BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'my_tag_01' DATABASE;

RECOVER COPY OF DATABASE WITH TAG 'my_tag_01';

DELETE NOPROMPT ARCHIVELOG UNTIL TIME 'SYSDATE-3';

BACKUP SPFILE FORMAT '/path/spfile_%T_%U';

BACKUP CURRENT CONTROLFILE FORMAT '/path/cfile_%T_%U';

}

exit

如何根据我的场景设计我的脚本?

太感谢了。

此致,

backup oracle-12c
  • 1 个回答
  • 57 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve