标签: database-administration

如何正确地建立公共同义词

这是一个非常愚蠢的,但我需要帮助.

我有一张由mydbowner拥有的桌子.它被命名为mydbowner.mytable.我试图通过发出命令来创建一个公共同义词:

为mydbowner.mytable创建或替换PUBLIC SYNONYM mytable;

当我这样做,我查询表得到:

ORA-01775:同义词的循环链

如何在没有问题的情况下创建此同义词.

oracle database-administration

10
推荐指数
2
解决办法
6万
查看次数

SP2-0734:未知命令以"impdp"开头

需要帮忙 ..

.DMP在我的数据库上导入一个文件,当我在SQL上编写我的impdp查询时,它返回此错误我不知道这个错误是什么

SP2-0734:未知命令开头"impdp ..."其余行被忽略

我的命令是

impdp user/pass directory=DUMPS dumpfile=filedumpname.dmp logfile=name.log full=yes
Run Code Online (Sandbox Code Playgroud)

database-administration oracle10g impdp

10
推荐指数
2
解决办法
4万
查看次数

无法从函数或多命令字符串执行VACUUM

我使用PL/pgSQL编写了一个脚本,我在pgAdmin III中运行.该脚本删除现有的DB内容,然后为所需的测试场景添加一堆"样本"数据(通常是各种类型的负载测试).加载数据后,我想"真空分析"受影响的表,既可以从已删除的记录中恢复空间,又可以准确反映新内容.

我可以使用各种变通方法(例如手动执行VACUUM ANALYZE,包括脚本中各种结构的drop/create语句等)但是,我真正想做的是:

DO $$
BEGIN
  -- parent table
  FOR i IN 1..10000 LOOP
    INSERT INTO my_parent_table( ... ) VALUES ...;
  END LOOP;

  VACUUM ANALYZE my_parent_table;

  -- child table
  FOR i IN 1..50000 LOOP
    INSERT INTO my_child_table( ... ) VALUES ...;
  END LOOP;

  VACUUM ANALYZE my_child_table;
END;
$$;
Run Code Online (Sandbox Code Playgroud)

当我运行这个时,我得到:

ERROR:  VACUUM cannot be executed from a function or multi-command string
Run Code Online (Sandbox Code Playgroud)

那么我尝试将真空语句移动到最后:

DO $$
BEGIN
  -- parent table
  FOR i IN 1..10000 LOOP
    INSERT INTO my_parent_table( ... ) VALUES ...; …
Run Code Online (Sandbox Code Playgroud)

postgresql database-administration postgresql-9.2

10
推荐指数
1
解决办法
7029
查看次数

从powershell删除SQL Server数据库

我在本地计算机上有一个SQL Server实例.\SC.我想使用PowerShell脚本从该实例中删除数据库.我需要sa用户登录我的数据库.

这是我到目前为止的代码,但它不起作用:

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo")
$srv = new-object Microsoft.SqlServer.Management.Smo.Server(".\SC")
$conContext = $srv.ConnectionContext
$conContext.LoginSecure = $FALSE
$conContext.Login = "sa"
$conContext.Password = "MyPlainTextPass"
$srv2 = new-object Microsoft.SqlServer.Management.Smo.Server($conContext)
$srv2.Databases
Run Code Online (Sandbox Code Playgroud)

最后一行应该列出我的SQL实例中的数据库......但它给了我这个错误:

尝试枚举集合时发生以下异常:"无法连接到服务器.\ SC.".在行:1 char:1 + $ srv2.Databases + ~~~~~~~~~~~~~~~ + CategoryInfo:NotSpecified:(:) [],ExtendedTypeSystemException + FullyQualifiedErrorId:ExceptionInGetEnumerator

我究竟做错了什么?

sql-server powershell database-administration

10
推荐指数
2
解决办法
1万
查看次数

如何安装mysqlbackup?

我想用mysqlbackup做增量备份.但是我无法弄清楚如何安装它.

我安装了mysql-server.文档(http://dev.mysql.com/doc/mysql-enterprise-backup/3.7/en/mysqlbackup.incremental.html)似乎表明它应该已经安装,但事实并非如此.我在ubuntu上运行mysql.

mysql database-administration mysql-backup

10
推荐指数
1
解决办法
3481
查看次数

如何锁定一个mysql数据库中的所有表?

我编写了一个备份shell脚本来执行mysqldump.

mysqldump -u$BACKUP_USER -p$BACKUP_PASS --flush-logs --lock-tables $DB_NAME > $SQL_FILE
Run Code Online (Sandbox Code Playgroud)

我的db的存储ENGINE是MyISAM.所以我不能使用--single-transaction选项.该--lock-tables只锁定在正在进行的mysqldump一个表.我的MySQL实例中有很多数据库,我不想使用--lock-all-tables,它会锁定在我的服务器上运行的所有数据库.那么,如何在同一时间锁定一个mysql数据库中的所有表,以便我可以转储它?

mysql database database-administration

9
推荐指数
3
解决办法
2万
查看次数

复制/复制RethinkDB数据库的最简单方法是什么?

如何轻松复制生产数据库(mydb)以创建开发数据库(mydb-dev)?

rethinkdb restore命令似乎没有选项来指定输出数据库的名称.它只能选择我想从转储中恢复哪个数据库.我正在使用rethinkdb 1.16.3

database-administration rethinkdb

9
推荐指数
1
解决办法
2328
查看次数

终止和取消流程之间的区别

函数之间有什么区别:pg_cancel_backend(pid int)和pg_terminate_backend(pid int)?对我来说,他们的工作方式非常相似

postgresql database-administration kill-process

8
推荐指数
1
解决办法
4803
查看次数

使用MongoDB Compass进行连接

我正在尝试使用MongoDB Compass查看集合的内容。我已经设置了用户名/密码验证。我可以成功登录,但是在收藏集中看不到任何文档。相反,我看到了错误:

加载导航时发生错误:命令hostInfo需要验证。

以下是用户具有的角色列表:

"roles": [{
    "role": "readWrite",
    "db": "moviesDB"
  },
  {
    "role": "dbAdmin",
    "db": "moviesDB"
  },
  {
    "role": "dbOwner",
    "db": "moviesDB"
  },
  {
    "role": "clusterMonitor",
    "db": "admin"
  },
  {
    "role": "dbAdmin",
    "db": "moviesDB"
  }
]
Run Code Online (Sandbox Code Playgroud)

我可以使用mongo shell和node.js驱动程序成功查询集合,但不能通过Compass。如果有人可以告诉我我在做什么错,我将不胜感激。提前致谢!

database-connection database-administration mongodb mongodb-compass

8
推荐指数
2
解决办法
5159
查看次数

为什么 ALTER DEFAULT PRIVILEGES 没有按预期工作?

我有 2 个用户。User1 是写作者,是写作角色的成员,而 User2 是“读者”角色的成员。

读者角色获得后续权限:

GRANT CONNECT ON DATABASE to reader
GRANT USAGE ON SCHEMA x TO reader
Run Code Online (Sandbox Code Playgroud)

我希望读者能够从给定的模式中读取/选择所有现有的和新的表,但使用

ALTER DEFAULT PRIVILEGES IN SCHEMA x GRANT SELECT ON TABLES TO reader;
Run Code Online (Sandbox Code Playgroud)

不起作用。用户 2 将不会获得对用户 1/写入者角色创建的新表的任何权限。

使用:

ALTER DEFAULT PRIVILEGES FOR ROLE writer IN SCHEMA x GRANT SELECT ON TABLES TO reader;
Run Code Online (Sandbox Code Playgroud)

也不行。我必须明确指出该表的所有者。为了解决这个问题我不得不使用:

ALTER DEFAULT PRIVILEGES FOR ROLE User1 IN SCHEMA x GRANT SELECT ON TABLES TO reader;
Run Code Online (Sandbox Code Playgroud)

我实际上不希望这样做,因为除了 User1 之外可能还有其他用户也会将表发布到该架构中。

我错过了什么吗?

postgresql privileges database-administration

8
推荐指数
0
解决办法
4555
查看次数