Что такое реестр oracle

Обновлено: 07.07.2024

Иногда моя база данных Oracle в Windows получает из шланга. Как сделать ручное удаление Oracle?

шестиступенчатый процесс удаления всех вещей Oracle с машины Windows:

А. удалить службы Oracle: В реестре перейдите в раздел \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services и удаляем все, что начинается с "Oracle"

Б. удалить другие вещи Oracle из реестра: Перейти к \HKEY_LOCAL_MACHINE\SOFTWARE\ и удалить ключ ORACLE

С. перезагрузка

Д. удалить все программное обеспечение Oracle справочники, где вы установили

Е. удалить инвентарь программного обеспечения Oracle: Удалить каталог C:\Program Files\Oracle . Вы должны сделать это независимо от того, где вы установили программное обеспечение Oracle - установщик Oracle автоматически записывает информацию здесь.

Ф. удалить все ярлыки из меню "Пуск".

г. удалить каталоги Oracle из переменной среды PATH.

чтобы упростить очистку в будущем, я бы сильно рекомендуется установить продукты Oracle на одной или нескольких виртуальных машинах.

в основном, это сводится к:

удалите все, что вы можете с помощью установщика. Удалите ключи Oracle из реестра. Удалите каталоги Oracle с компьютера.

с (Конечно) необходимыми перезагрузками, брошенными по мере необходимости ; -)

удалите Oracle 10g из окна 7, Xp

Шаг 1 : Откройте меню Пуск и в program files найдите папку oracle-oraDb10g_home и выберите oracle installation products - > Universal Installer.

Шаг 2 : выберите деинсталлировать продукт, который появится новое окно, установите флажок oracleDb10g_home1, как показано ниже. Нажмите на кнопку Удалить. Это приведет к удалению oracle.

Шаг 3 : Удалите файл регистрации из Regedit, чтобы полностью удалить oracle 10g. Запустите Regedit.

удалите следующие ключи, если он выходит после установки.

HKEY_CURRENT_USER\SOFTWARE\ORACLE HKEY_LOCAL_MACHINE\ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ\ORACLE Раздел HKEY_LOCAL_MACHINE\система\CurrentControlSet на\услуги\журнал событий\приложения\Оракул.оракул Система реестра HKEY_LOCAL_MACHINE\\CurrentControlSet на\\услуги OracleDBConsole Система реестра HKEY_LOCAL_MACHINE\\CurrentControlSet на\\Oracle10g_home услуг Раздел HKEY_LOCAL_MACHINE\система\CurrentControlSet на\услуги\OraclService

Шаг 4 : теперь удалите папку, куда вы установили программу. По умолчанию он установлен на диске c как C:\oracle и от C:\programs файлы\oracle.

следовательно, успешно выполнив эти шаги, Oracle 10g удаляется полностью. Если у вас возникли проблемы с удалением или удалением программа, (oracle) затем сделайте комментарий ниже, мы посмотрим на это.

одно замечание-если вы используете официальный деинсталлятор, ему не нравится, что в папке temp есть пробелы. Так что, если у вас есть набор "документы и настройки. \ temp " он потерпит неудачу. Используйте кнопку параметры среды панели управления, чтобы сначала установить папку TEMP.

советы по использованию среды VM являются лучшими: не беспокойтесь о деинсталляции. Просто установите полную среду Oracle и после одного успешного запуска: winrar VM . после повреждения Oracle home еще раз: просто удалите текущую виртуальную машину и разархивируйте резервную копию

предполагая, что ОС типа unix и что вы правильно установили ее с помощью учетной записи с именем oracle.

найти / - пользователь oracle-exec rm-fr <> \;

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

За время работы с Oracle Database и Microsoft SQL Server Integration Services я собрал 2 FAQ-а. Первый — по Oracle Client — я публикую здесь, а второй — по коннекторам SSIS к Oracle, следующим постом.

Что такое Oracle Client?

Это промежуточное ПО, предназначенное для доступа к Oracle Database. Некоторые приложения имеют встроенного клиента. Встраиваемый клиент, предназначенный для разработчиков, называется Instant Client.

Откуда скачать Oracle Client?

Если Вы возьмете клиента от более старшей версии это будет плюсом, поскольку не придется его обновлять на работающей системе, когда потребуется соединяться со следующей СУБД Oracle.

Не перепутайте Oracle Client и Oracle Instant Client, предназначенный для разработчиков. Так же, не качайте Data Access Components, поскольку DAC, помимо Oracle Client, содержит много средств, нужных только для разработки приложений.

Установка клиента Oracle 12c 32-bit не проходит после установки Oracle 12c 64-bit клиента (или наоборот)

Если Вы только что установили одного из клиентов Oracle 12c и не перезагружались, перезагрузитесь.

Программа установки Oracle Client, называемая Oracle Universal Installer, создает службу OracleRemExecService, которая согласно неофициальному описанию нужна только для OUI и должна исчезнуть после перезагрузки. В реальности она не исчезает, но и не запускается при старте ПК. Является ли правильным остановить службу, я не знаю, но это тоже помогает.

Как настроить подключение к СУБД Oracle в приложении, использующем Oracle Client?

Со стороны прикладного программного обеспечения, работающего через Oracle Client, для указания БД может быть использовано имя сервиса TNS или строка конфигурации, содержащая часть объявления имени сервиса TNS.

В первом случае в папке Oracle Client в "\network\admin\tnsnames.ora" укажите:

При этом, в приложениях в поле TNS Service Name указывается имя подключения.

Следует иметь ввиду, что в приложении, запускаемом в 32-х битной среде, используется Oracle Client 32-bit, а в 64-х битной среде используется Oracle Client 64-bit, поэтому может потребоваться сделать "tnsnames.ora" в обоих клиентах.

Что такое SERVICE_NAME и SID?

Подключение к базе данных по сети со стороны сервера обслуживает промежуточное ПО, называемое Listener.

SID это уникальный идентификатор базы данных Oracle на машине, а SERVICE_NAME, это идентификатор базы данных, заданный в Listener. Таким образом, одна и та же база данных, может быть доступна под разными SERVICE_NAME, но только под одним SID. Вас, поскольку Вы находитесь снаружи Listener-а, волнует SERVICE_NAME.

Как адресовать таблицы в Oracle?

По-умолчанию пользователь Oracle обращается к таблицам в своей схеме. Для того, что бы запрос обращался к одним и тем же таблицам из под любого пользователя, нужно указывать имя схемы перед точкой. Например, BM9.BM_CUSTOMER_CONTACT адресует таблицу BM_CUSTOMER_CONTACT в схеме BM9.

Что такое схема и база данных в Oracle?

База данных в СУБД Oracle = отдельный набор процессов СУБД с общей памятью.

Схема содержится внутри базы данных и является контейнером для таблиц. Кроме того, схема = пользователь.

Таблицы с одинаковыми именами могут существовать одновременно в разных схемах.

Почему не удается определить OCI environment (например, в Attunity)?

Приложение использующее Oracle Client должно каким-то образом его найти. Путь установки Oracle Client добавляется в %PATH% Oracle Installer-ом при установке. Но следует иметь ввиду, что переменные окружения устанавливаются процессу при запуске и, к примеру, Visual Studio (BIDS, Data Tools) запущенная до установки клиента, требует перезапуска, что бы начать использовать новый %PATH%.

Эта ошибка может быть по разному сформулирована в других приложениях.

Как настроить символьную кодировку Oracle Client?

Неверно настроенная кодировка может влиять как на получаемые данные, так и на выполнение запросов. Это может проявляться в том, что REPLACE(table_column, 'А', 'Б') в одном инструменте работает, а в другом нет, потому, что литералы ‘А’ и ‘Б’, поступающие в БД, воспринимаются иначе в одном из инструментов.

Для 32-х разрядного клиента в реестре в [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE] установите параметр "NLS_LANG"="RUSSIAN_CIS.CL8MSWIN1251" (типа REG_SZ).

Для 64-х разрядного клиента в реестре в [HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE], аналогично, установите параметр "NLS_LANG"="RUSSIAN_CIS.CL8MSWIN1251" (типа REG_SZ).

После настройки кодировки необходимо перезагрузиться, поскольку, уже запущенный Oracle Client её не перечитает.

По Вашему запросу ничего не найдено.

Рекомендуем сделать следующее:

  • Проверьте правильность написания ключевых слов.
  • Используйте синонимы введенных Вами ключевых слов, например “приложение” вместо “программное обеспечение”.
  • Попробуйте воспользоваться одним из популярных поисковых запросов ниже.
  • Начните новый поиск.

Темы на странице по Docker

Контейнеры Docker и контейнерные облачные решения

Контейнер — это формат пакетирования, который позволяет упаковать весь код и зависимости приложения в стандартный формат, что позволяет ему быстро и надежно работать в вычислительных средах. Контейнер Docker — это популярный легкий автономный выполняемый контейнер, который включает в себя все необходимое для запуска приложения, в том числе библиотеки, системные инструменты, код и среду выполнения. Docker — это также программная платформа, которая позволяет разработчикам быстро создавать, тестировать и развертывать контейнерные приложения.

Containers as a Service (CaaS) или контейнерные сервисы — это управляемые облачные решения, которые управляют жизненным циклом контейнеров. Контейнерные сервисы позволяют координировать (запускать, останавливать, масштабировать) среду выполнения контейнеров. Используя контейнерные сервисы, Вы можете упростить, автоматизировать и ускорить жизненный цикл разработки и развертывания приложений.

За последние несколько лет Docker и контейнерные сервисы быстро распространялись и стали невероятно популярны. Из почти неизвестной и чисто технической технологии с открытым исходным кодом в 2013 году Docker превратился в стандартизированную среду выполнения, которая теперь официально поддерживается для многих корпоративных продуктов Oracle.

Кто использует Docker?

Docker — это открытая платформа для разработки приложений, созданная для поддержки DevOps и разработчиков. Используя Docker, разработчики могут легко создавать, упаковывать, доставлять и запускать приложения в виде легких, портативных, самодостаточных контейнеров, которые могут работать практически где угодно. Контейнеры позволяют разработчикам упаковать приложение со всеми его зависимостями и развернуть его как единое целое. Благодаря готовым и самоподдерживающимся контейнерам приложений разработчики могут сосредоточиться на кодировании и использовании приложений, не думая о базовой операционной системе или системе развертывания.

Кроме того, разработчики могут использовать тысячи контейнерных приложений с открытым исходным кодом, которые уже разработаны для запуска в контейнере Docker. Командам DevOps Docker предоставляет инструменты для непрерывной интеграции и разработки, а также снижает ограничения и сложность, необходимые в их системной архитектуре для развертывания приложений и управления ими. С появлением облачных сервисов оркестрации контейнеров любой разработчик может разрабатывать контейнерные приложения локально в своей среде разработки, а затем перемещать и запускать эти контейнерные приложения в производственной среде в облачных сервисах, таких как управляемые сервисы Kubernetes.

Сравнение Docker и Kubernetes

Основы Docker

Основные понятия технологии Docker — это образы и контейнеры. Образ Docker содержит все, что необходимо для запуска программного обеспечения: код, среду выполнения (например, вJava Virtual Machine (JVM)), драйверы, инструменты, сценарии, библиотеки, развертывания и т. д.

Контейнер Docker — это работающий экземпляр образа Docker. Однако, в отличие от традиционной виртуализации с гипервизором типа 1 или 2, контейнер Docker работает на ядре операционной системы хоста. В образе Docker нет отдельной операционной системы как показано на рисунке 1.

Образ docker


Рис. 1

Изоляция и виртуализация

Каждый контейнер Docker имеет собственную файловую систему, собственный сетевой стек (и, следовательно, собственный IP-адрес), собственное пространство процессов и определенные ограничения ресурсов для CPU и памяти. Поскольку контейнер Docker не должен загружать операционную систему, он запускается мгновенно. Docker — это технология изоляции, то есть ресурсы операционной системы хоста разделяются, в отличие от виртуализации, когда гостевая операционная система предоставляется поверх операционной системы хоста.

Виртуальная машина и Kubernetes — инфраструктура развертывания

Образ системы инкрементных файлов


Рис. 2

Система инкрементных файлов

Файловая система образа Docker многоуровневая с семантикой копирования при записи. Таким образом обеспечивается наследование и повторное использование, экономия ресурсов на диске и скачивание инкрементных образов.

Как показано на рис. 2, образ Docker с развертыванием WebLogic может быть основан на образе с доменом Oracle WebLogic Server, который может быть основан на образе WebLogic, основанном на образе Java Development Kit (JDK), который в свою очередь основан на базовом образе Oracle Linux.

Реестр Docker

Хотя образы Docker легко создавать и разработчикам удобно работать с простыми и портативными образами Docker, быстро обнаружилось, что управлять тысячами образов Docker очень сложно. Решает эту проблему реестр Docker. Реестр Docker — это стандартный способ хранения и распространения образов Docker. Реестр — это репозиторий с открытым исходным кодом, имеющий либеральную лицензию Apache.

Реестр Docker также помогает улучшить контроль доступа и безопасность образов Docker, хранящихся в его репозитории. Он управляет распространением изображений, а также может интегрироваться с рабочими процессами разработки приложений. Разработчики могут настроить свой собственный реестр Docker или использовать размещенный сервис реестра Docker, например Docker Hub, Oracle Container Registry, Azure Container Registry и т. д.

При запуске контейнера Docker по умолчанию автоматически извлекает соответствующий образ из общедоступного Docker Hub, если он недоступен локально. Более того, Вы также можете создавать свои собственные образы и отправлять их в Docker Hub в общедоступный или частный репозиторий.

Рис. 3. Снимок экрана реестра Docker Registry


Рис. 3

Docker как среда выполнения микросервисов

Идея разделить монолитные приложения на более мелкие части микросервисов сегодня привлекает большое внимание разработчиков программного обеспечения.

Микросервисы развертываются независимо как процесс, используют облегченные протоколы для связи друг с другом, а каждый сервис владеет своими данными [7]. Поскольку для микросервисов применяется децентрализованный подход к управлению, требуется достаточно значительная автоматизация инфраструктуры, автоматизация тестирования, полностью автоматизированные конвейеры CD и квалифицированные и оперативные команды DevOps.

По поводу такого архитектурного стиля все еще идет много дискуссий, так как наивно было бы полагать, что приложение, разложенное на микросервисы, может просто работать как набор процессов. Вот лишь несколько требований: микросервис должен быть независимым от хоста и изолированным на уровне операционной системы. Он должен работать в пределах своих ресурсных возможностей, увеличиваться и уменьшаться в размерах, перезапускаться в случае сбоя, обнаруживаться и подключаться к другим микросервисам через программно-определяемый сетевой уровень.

Таким образом, запуск микросервиса в контейнере Docker — это прекрасный старт для достижения большинства из этих целей.

Docker — Два основных измерения

Docker меняет способ создания, доставки и запуска программного обеспечения в двух разных измерениях:

  • он улучшает процесс надежного перехода приложения от разработки к производству;
  • он предоставляет стандартный формат образа для передачи из локальной среды в облако.

Оба измерения объяснены подробнее ниже.

Образ Docker — от разработки к производству

Создание образа Docker со всеми его зависимостями решает проблему «но это же работало на моем компьютере для разработки». Ключевая идея заключается в том, что образ Docker создается автоматически конвейером сборки из репозитория исходного кода, такого как Git, и первоначально тестируется в среде разработки. Затем этот постоянный образ будет сохранен в реестре Docker.

Как показано на рис. 4, этот же образ будет использоваться для дальнейших нагрузочных тестов, интеграционных тестов, приемочных тестов и т. д. В каждой среде будет использоваться один и тот же образ. Небольшие, но необходимые для среды различия, такие как URL-адрес JDBC для производственной базы данных, могут быть переданы в контейнер в виде переменных или файлов среды.

снимок экрана образа docker


Рис. 4

Статистика показывает, что 65 % всех текущих сценариев использования Docker находятся в разработке, а 48 % используют Docker для непрерывной интеграции [5].

Из локальной среды в облако

Docker изменил отношение к общедоступным облакам: с одной стороны, в образе Docker впервые в истории существует общий формат пакета, который можно запускать как в локальной среде, так и в среде любого крупного поставщика облачных решений. Контейнеры Docker работают на моем ноутбуке так же, как и в Oracle Cloud.

С другой стороны, поскольку контейнеры Docker работают в каждом крупном публичном облаке, они значительно способствуют преодолению давно укоренившихся предубеждений против общедоступных облаков: привязки к поставщику. Все крупные облачные провайдеры теперь предлагают Docker как PaaS.

Версии Docker — зрелость базовой технологии

Версии Docker выпускаются намного быстрее по сравнению с циклом выпуска версий традиционного корпоративного программного обеспечения. Иногда такой быстрый темп выпуска версий, вкупе с новизной самого проекта Docker, вызывает опасения в отношении его безопасности и стабильной работы.

Хотя Docker и его командная строка, демон Docker, его API и инструменты, такие как Docker Swarm, Docker Machine и Docker Compose, развивались только в последние три года, основные функции ядра были доступны в каждом ядре Linux уже почти десять лет.

Яркий пример использования контейнерных технологий — компания Google. Google использовал контейнеры Linux еще до появления Docker. Более того, Google запускает в контейнере все. По оценкам, Google запускает 2 миллиарда контейнеров в неделю [3].

История пространств имен и контрольных групп

Базовые функции ядра Linux, которые использует Docker, — это контрольные группы и пространства имен. В 2008 году в ядро ​​Linux были введены контрольные группы на основе работы, ранее проделанной разработчиками Google [1]. Контрольные группы ограничивают и контролируют использование ресурсов только в каком-либо одном наборе процессов операционной системы.

Ядро Linux использует пространство имен для изоляции системных ресурсов процессов друг от друга. Первое пространство имен, то есть пространство имен Mount, было внедрено еще в 2002 году.

Контейнерные облачные решения

В первой части этой статьи объяснялись некоторые важные понятия Docker. Однако в производственной среде недостаточно просто запустить приложение в контейнере Docker.

Для настройки и эксплуатации производственной среды требуется оборудование для запуска контейнеров. Такое программное обеспечение, как Docker, а также репозитории и менеджеры кластеров должны устанавливаться, обновляться и исправляться. Если несколько контейнеров Docker обмениваются данными через хосты, необходимо создать сеть. В случае сбоя кластерные контейнеры следует перезапустить. Кроме того, набор связанных друг с другом контейнеров должен быть развернут так же легко, как и один логический экземпляр приложения. Примером этого может служить балансировщик нагрузки, несколько веб-серверов, несколько экземпляров Oracle WebLogic Server с сервером администрирования, управляемый сервер и база данных. Для масштабного управления контейнерными приложениями требуется система оркестровки контейнеров, такая как Kubernetes или Docker Swarm. Развертывание, управление и эксплуатация таких систем оркестровки, как Kubernetes, может быть сложной задачей и отнимать много времени.

Чтобы разработчики могли проще и эффективнее создавать контейнерные приложения, поставщики облачных услуг предлагают облачные контейнерные сервисы или Containers as a Service (CaaS). Облачные контейнерные сервисы помогают разработчикам и операционным группам оптимизировать жизненный цикл контейнеров и управлять им в автоматическом режиме. Такие сервисы оркестрации, обычно созданные с использованием Kubernetes, упрощают для команд DevOps управление масштабными контейнерными приложениями и их работу. Oracle Container Engine for Kubernetes и Azure Kubernetes Service — два примера популярных управляемых облачных сервисов для оркестрации контейнеров.

Oracle Container Engine for Kubernetes — это полностью управляемый, масштабируемый и высокодоступный сервис, который можно использовать для развертывания контейнерных приложений в облаке. Используйте Container Engine for Kubernetes (иногда используется аббревиатура OKE), если Ваша команда разработчиков хочет надежно создавать, развертывать cloud native приложения и управлять ими.

Образы Docker от Oracle—Ниже приведены несколько источников для получения или создания образом Docker для продуктов Oracle. Репозиторий Oracle GitHub для образов Docker содержит файлы Docker и образцы для создания образов Docker для коммерческих продуктов Oracle и проектов с открытым исходным кодом, поддерживаемых Oracle.

Практические занятия по Docker—Контейнерная разработка с Docker

В этой теме рассматривается ряд вопросов, которые могут возникнуть при настройке и использовании издателя Oracle.

Ошибка, касающаяся клиентского и сетевого программного обеспечения Oracle

«Не удалось подключиться к серверу с помощью [поставщика Microsoft OLE DB для Oracle]. Клиентские и сетевые компоненты Oracle не найдены. Эти компоненты поставляются корпорацией Oracle и являются частью установочного пакета клиентского программного обеспечения Oracle 7.3.3 или более поздней версии. Поставщик не может функционировать, пока эти компоненты не будут установлены».

Если на распространителе устанавливается подходящее клиентское программное обеспечение Oracle, то убедитесь в том, что SQL Server остановлен, а затем перезапустите его после завершения установки клиентского ПО. Это необходимо SQL Server для распознавания клиентских компонентов.

Если проверено, что эти разрешения предоставлены и что компоненты установлены должным образом, но эта ошибка продолжает возникать, убедитесь в правильности значений настроек в разделе реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI.

Для Oracle 10g правильными являются следующие значения настроек:

Для Oracle 9i правильными являются следующие значения настроек:

Распространителю SQL Server не удается подключиться к экземпляру базы данных Oracle

Если распространителю SQL Server не удается подключиться к издателю Oracle, необходимо убедиться в следующем:

Необходимое программное обеспечение Oracle установлено на распространителе.

База данных Oracle доступна в режиме в «сети» и к ней не удается подключиться при помощи такого средства, как SQL*Plus.

Имя входа, которое репликация использует для подключения к издателю Oracle, имеет достаточно разрешений. Дополнительные сведения см. в статье Настройка издателя Oracle.

Имена TNS, определенные во время настройки издателя Oracle, приводятся в файле tnsnames.ora.

Используются правильные значения Oracle Home и пути. Даже если есть только один набор исполняемых файлов Oracle, установленных на распространителе SQL Server , проверьте, чтобы были правильно установлены переменные среды, относящиеся к Oracle Home. При изменении значений переменных среды необходимо остановить и перезапустить SQL Server , чтобы эти изменения вступили в действие.

Дополнительные сведения о настройке и проверке подключения см. в подразделе "Установка и настройка клиентского сетевого программного обеспечения Oracle на распространителе SQL Server" раздела Настройка издателя Oracle.

Издатель Oracle связан с другим распространителем

«Экземпляр "<OraclePublisherName>" сервера Oracle ранее использовал "<SQLServerDistributorName>" в качестве распространителя. Чтобы использовать "<NewSQLServerDistributorName>" в качестве его распространителя, необходимо удалить текущую конфигурацию репликации на экземпляре сервера Oracle, в результате чего будут удалены все публикации на этом экземпляре сервера».

«Сервер Oracle "<OracleServerName>" уже определен в качестве издателя "<OraclePublisherName>" на распространителе "<SQLServerDistributorName>. <DistributionDatabaseName> ". Для повторного создания удалите издатель или открытый синоним " <SynonymName> "».

При удалении издателя Oracle объекты репликации в базе данных Oracle автоматически очищаются. Однако в некоторых случаях необходима ручная очистка объектов репликации Oracle. Для ручной очистки объектов репликации Oracle, созданных при репликации, выполните следующее:

Подключитесь к издателю Oracle с разрешениями администратора базы данных.

Выполните команду SQL DROP PUBLIC SYNONYM MSSQLSERVERDISTRIBUTOR; .

Выполните команду SQL DROP USER <replication_administrative_user_schema>``CASCADE; .

Ошибка SQL Server 21663 возникает из-за отсутствия первичного ключа

«Не найден правильный первичный ключ для исходной таблицы [<TableOwner>].[<TableName>]»

Сведения о требованиях для первичных ключей см. в подразделе «Уникальные индексы и ограничения» раздела Design Considerations and Limitations for Oracle Publishers.

Ошибка SQL Server 21642, связанная с повторяющимся именем входа связанного сервера

«Для разнородных издателей необходим связанный сервер. Связанный сервер с именем " <LinkedServerName> " уже существует. Удалите связанный сервер или выберите другое имя издателя».

Эта ошибка может возникнуть при попытке непосредственно создать связанный сервер, или если ранее была удалена связь между издателем Oracle и распространителем SQL Server , и теперь предпринимается попытка перенастроить издатель. Если эта ошибка возникает при попытке перенастроить издатель, удалите связанный сервер с помощью sp_dropserver (Transact-SQL).

Если вам нужно подключиться к издателю Oracle через подключение связанного сервера, создайте другое имя службы TNS и используйте это имя при вызове процедуры sp_addlinkedserver (Transact-SQL). Сведения о создании имен службы TNS см. в документации Oracle.

Ошибка SQL Server 21617

«Не удается запустить SQL*PLUS. Убедитесь, что на распространителе установлена текущая версия клиентской программы Oracle».

Попытайтесь найти SQL*PLUS на распространителе. Для установки клиента Oracle 10g имя этого исполняемого файла — sqlplus.exe. Обычно данная программа устанавливается в каталог %ORACLE_HOME%/bin. Чтобы убедиться, что путь SQL*PLUS содержится в системном пути, проверьте значение системной переменной Path:

Щелкните правой кнопкой мыши Мой компьютер, затем выберите Свойства.

Перейдите на вкладку Дополнительно , затем щелкните Переменные среды.

В диалоговом окне Переменные среды , в списке Системные переменные выберите переменную Path и щелкните Изменить.

В диалоговом окне Изменение системной переменной выполните следующие действия: если в текстовом поле Значение переменной путь к папке, содержащей sqlplus.exe, отсутствует, измените строку, чтобы она содержала этот путь.

Если на распространителе не удается найти sqlplus.exe, установите на распространителе текущую версию клиентского программного обеспечения Oracle. Дополнительные сведения см. в статье Настройка издателя Oracle.

Ошибка SQL Server 21620

При соединении с базой данных Oracle, версия которой предшествует версии 8.1, для публикации Oracle необходимо, чтобы версия клиентского программного обеспечения Oracle, установленного на распространителе, была не ниже 9. При соединении с базой данных Oracle 8.1 или более поздней версии рекомендуется, чтобы версия клиентского программного обеспечения Oracle была не ниже 10.

«Версия SQL*PLUS, доступная через переменную системного пути, в настоящее время недостаточна для поддержки публикации Oracle. Убедитесь, что на распространителе установлена текущая версия клиентской программы Oracle».

Если на распространителе установлено несколько версий клиентского программного обеспечения Oracle, убедитесь, что самая последняя версия не ниже 9, и что переменная системного пути ссылается вначале на эту версию (ссылки на другие версии могут использоваться, если самая последняя версия располагается первой). Дополнительные сведения о редактировании переменной системного пути см. в приводимом выше разделе «Ошибка SQL Server 21617».

Ошибка SQL Server 21624 или 21629

Если используется клиентское программное обеспечение Oracle версии 10g, поставщиком является OraOLEDB10.dll, для версии 9i — это OraOLEDB.dll. Поставщик устанавливается в каталог %ORACLE_HOME%\BIN (например, в «C:\oracle\product\10.1.0\Client_1\bin»). Если обнаружено, что поставщик Oracle OLEDB не установлен на распространителе, установите его с установочного диска клиентского программного обеспечения Oracle, предоставляемого корпорацией Oracle. Дополнительные сведения см. в статье Настройка издателя Oracle.

  1. regsvr32 OraOLEDB10.dll или regsvr32 OraOLEDB.dll .

Возникает ошибка SQL Server 21626 или 21627

  • «Невозможно подключиться к серверу базы данных Oracle "%s" с помощью поставщика OLEDB для Oracle (OraOLEDB.Oracle)».

Ошибка SQL Server 21628

«Не удалось обновить реестр распространителя "%s", чтобы позволить поставщику OLEDB для Oracle (OraOLEDB.Oracle) запускаться в процессе с SQL Server. Убедитесь, что пользователю с текущим именем входа разрешается вносить изменения в разделы реестра, принадлежащие SQL Server ».

Для системы публикации Oracle необходимо, чтобы запись реестра существовала и была установлена в 1 для 64-разрядных распространителей. Если запись не существует, SQL Server будет пытаться создать ее. Если запись существует, но установлена в 0, установка не изменится, и настройка издателя Oracle завершится неудачей.

Для просмотра и изменения установки реестра выполните следующие действия:

В диалоговом окне Выполнить введите regedit, затем нажмите кнопку OK.

Перейдите к папке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\ <InstanceName> \Providers.

В папке для поставщиков (Providers) должна находиться папка с именем OraOLEDB.Oracle. В этой папке должна присутствовать DWORD-переменная с именем AllowInProcess, которой присвоено значение 1.

Если обнаружено, что переменная AllowInProcess установлена в 0, обновите запись реестра до 1:

Щелкните правой кнопкой мыши запись, затем щелкните Изменить.

В диалоговом окне Изменение строкового параметра введите 1 в поле Значение поля .

Возникает ошибка SQL Server 21684

«Разрешений, связанных с именем входа администратора для издателя Oracle «%s», недостаточно».

Чтобы проверить разрешения, предоставленные пользователю, выполните следующий запрос: SELECT * from session_privs . Результат выполнения должен быть аналогичен следующему:

CREATE PUBLIC SYNONYM

DROP PUBLIC SYNONYM

Проблемы, связанные с разрешениями для пользовательской схемы репликации

Пользовательская схема репликации должна иметь разрешения, описанные в подразделе "Создание пользовательской схемы вручную" раздела Настройка издателя Oracle.

Ошибка Oracle ORA-01000

Репликация использует курсоры в издателе Oracle в процессе добавления статей в публикацию. Во время этого процесса возможно превышение максимально допустимого количества курсоров, доступных на издателе. Если это происходит, возникает следующая ошибка:

«ORA-01000: превышение максимального числа открытых курсоров»

Для исключения этой проблемы необходимо убедиться, что для параметра max_open_cursors в базах данных Oracle установлено достаточно большое число (по меньшей мере, 1 000). Дополнительные сведения об этой установке приводятся в документации Oracle.

Ошибка Oracle ORA-01555

Следующая ошибка базы данных Oracle относится не к репликации моментального снимка, а к тому, как Oracle строит подходящие для чтения представления данных:

"ORA-01555: слишком старый моментальный снимок"

При помощи объектов, называемых сегментами отката, Oracle создает пригодные для чтения представления данных на момент выдачи инструкции SQL. Ошибка «слишком старый моментальный снимок» может возникнуть, если данные отката переписываются другими, одновременно выполняющими сеансами. До версии Oracle 9i для уменьшения частоты появления этой ошибки рекомендовался метод увеличения размера или количества сегментов отката и назначения больших транзакций для определенных сегментов отката.

В Oracle 9i корпорация Oracle ввела концепцию табличного пространства UNDO, заменяющую сегмент отката. Для предотвращения ошибки «слишком старый моментальный снимок» в Oracle 9i рекомендуется следующее:

Создайте табличное пространство UNDO с достаточным количеством свободного места.

Установите гарантию хранения для табличного пространства (для версий Oracle 10G и выше).

Настройте параметры инициализации Oracle UNDO_MANAGEMENT и UNDO_RETENTION.

Дополнительные сведения об исключении причин ошибки «слишком старый моментальный снимок» см. в документации Oracle.

Ошибка Oracle ORA-22285

Если в таблице имеется столбец BFILE, данные для столбца хранятся в файловой системе. Административной учетной записи репликации должно быть предоставлено право доступа в каталог, в котором хранятся данные. С этой целью должно использоваться следующее синтаксическое выражение:

GRANT READ ON DIRECTORY <directory_name> TO <replication_administrative_user_schema>

«ORA-22285: несуществующий каталог или файл для операции FILEOPEN»

Выполнены изменения, требующие перенастройки издателя

Для изменения таблиц метаданных репликации или процедур необходимо удалить и перенастроить издатель. Чтобы перенастроить издатель, необходимо удалить издатель и настроить его вновь при помощи среды SQL Server Management Studio, Transact-SQL или объектов RMO. Дополнительные сведения о настройке издателя см. в разделе Настройка издателя Oracle.

Удаление издателя Oracle (среда SQL Server Management Studio )

Подключитесь к распространителю для издателя Oracle в среде SQL Server Management Studio , а затем раскройте узел сервера.

Щелкните правой кнопкой мыши Репликация, затем щелкните Свойства распространителя.

На странице Издатели диалогового окна Свойства распространителя снимите флажок для издателя Oracle.

1. В свойствах консоли (правой мышью на заголовке окна cmd) должен быть установлен unicode шрифт, например Lucida Console.

SNAGHTML5157ae4

SNAGHTML512b287

3. Нужно переключить кодовую страницу консоли на 1251, командой

Примечания:

1. Переменную NLS_LANG можно задавать тремя способами:

б) (локально) Для конкретной DOS сессии. Прямо в консоли командой set

C:> SET NLS_LANG=AMERICAN_CIS.CL8MSWIN1251

2. Изменение переменной NLS_LANG на глобальном уровне влияет на все другие программы работающие с Oracle, например EXPIMP. Поэтому следует быть осмотрительным и для безопастности, для запуска sqlplus использовать bat или cmd файл в котором менять NLS_LANG на уровне текущей сессии.

3) Как установить рабочую папку чтобы выполнялись вложенные скрипты.

Для этого нужно запустить sqlplus из рабочей папки. Для примера предположим что в качестве рабочей папки нужно использовать папку c:\EGRP\SCRIPTS и запустить скрипт c:\EGRP\SCRIPTS\UPDATE.sql, который вызывает из себя другие скрипты, некоторые из которых находиться в подпапках c:\EGRP\SCRIPTS.

C:\> cd c:EGRP\SCRIPTS
c:\EGRP\SCRIPTS>c:\app32\admin\product\11.2.0\client_1\bin\sqlplus.exe /nolog
SQL> @update

(на картинке еще отображен момент переключения кодовой страницы)

image

Для удобства использования, можно создать bat или cmd файл для запуска sqlplus.

REM echo off
REM Установка рабочей папки (можно убрать)
cd c:\egrp\scripts
SET NLS_LANG=RUSSIAN_CIS.CL8MSWIN1251
chcp 1251
break
REM Два варианта запуска sqlplus
c:\app\admin\product\11.2.0\dbhome_1\BIN\sqlplus.exe /nolog
REM c:\app\admin\product\11.2.0\dbhome_1\BIN\sqlplus.exe /nolog @UPDATE
exit

Примечания:

Читайте также: