Как создать раздел на удаленном табличном пространстве в Oracle? - PullRequest
1 голос
/ 16 ноября 2010

Я нуб в Oracle, возможно ли разделить таблицу на удаленный сервер, используя db link? это вообще возможно?

Я пытаюсь что-то вроде этого:

CREATE TABLE Test (
  TestID       integer           not null,
  Name       varchar2(20)      not null
)
PARTITION BY LIST (TestID)
 (PARTITION testPart1 VALUES (1)
TABLESPACE tbspc1,
 PARTITION testPart2 VALUES (2)
TABLESPACE tbspc2@RemoteServer);

спасибо

Ответы [ 3 ]

4 голосов
/ 17 ноября 2010

Нет, это не сработает. Вы путаете экземпляр с базой данных.

База данных - это физическое хранилище данных и метаданных. Количество используемых дисков и расположение дисков для управления. Вы можете поместить индексы в одно место, данные в другое; Вы можете поместить некоторые данные на локальные диски, а некоторые - на смонтированные. Это база данных.

Экземпляр - это структуры памяти и компьютерные процессы, которые обращаются к базе данных и позволяют запрашивать, записывать, обновлять ее и т. Д.

Когда вы говорите @DB_LINK ... вы говорите "Этот набор процессов памяти и процессора".

Когда вы говорите «Табличное пространство», вы говорите «На этих файлах, на этих дисках»

Если вы хотите хранить данные на тех же дисках, на которых хранится ваша @dblink, то подключите этот диск и создайте там новое табличное пространство.

Если вы пытаетесь ОТКРЫТЬ базу данных с более чем одним экземпляром, это называется RAC, и это у вас над головой. <- Я говорю это потому, что вам нужно освоить эти концепции, прежде чем вы когда-либо будете рассматривать RAC. </p>

1 голос
/ 17 ноября 2010

Возможно, следующая разумная отправная точка:

  1. Иметь базу данных в «домашнем офисе» для хранения общих данных.

  2. Наличие «локальной» базы данных в каждом филиале для хранения данных, относящихся к филиалу, со ссылками на базу данных «домашнего офиса» для доступа к общим данным.

  3. Чтобы устранить «единую точку отказа», которая может возникнуть в случае сбоя центральной базы данных или потери связи, вы можете попробовать реплицировать общие данные из центральной базы данных в базы данных филиала, что каждая ветвь имеет полную копию общих данных, которые могут обновляться по какому-то регулярному расписанию.

Делись и наслаждайся.

1 голос
/ 17 ноября 2010

Трудно сказать, что что-то невозможно, но на основании синтаксической диаграммы для CREATE TABLE это не представляется возможным.Для оператора select вы можете видеть, что синтаксис dblink (@ dblink): http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_10002.htm#i2126073 Но для разделения хранилища такой удаленный синтаксис отсутствует: http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_7002.htm#CJADDEEH

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...