Instal PostgreSQL. Menginstal PostgreSQL 1c dan instalasi postgres di Windows

Pengaturan di bawah ini bukanlah obat mujarab; pengaturan tersebut harus disesuaikan dengan daya sebenarnya yang tersedia. Jumlah aktual pengguna dan intensitas masukan informasi (tercatat). Saat menyiapkan suatu sistem, penting juga seberapa profesional orang yang menyiapkannya.

OS mana yang akan diinstal:

CPU

autovacuum_max_workers = NCores/4..2 tetapi tidak kurang dari 4

Jumlah proses autovacuum. Aturan umum— semakin banyak permintaan tulis, semakin banyak proses. Pada database read-only, satu proses sudah cukup.

Ssl= mati

Matikan enkripsi. Untuk pusat data yang aman, enkripsi tidak ada artinya, namun menyebabkan peningkatan beban CPU

Ingatan

shared_buffer = RAM/4

Jumlah memori yang dialokasikan oleh PgSQL untuk cache halaman bersama. Memori ini dibagikan di antara semua proses PgSQL. Sistem operasi itu sendiri menyimpan data dalam cache, jadi tidak perlu mengalokasikan semua RAM yang tersedia ke cache.

Temp_buffer = 256MB

Jumlah halaman maksimum untuk tabel sementara. Itu. ini adalah batas atas ukuran tabel sementara di setiap sesi.

Work_mem = RAM/32..64 atau 32MB..128MB

Batas memori untuk memproses satu permintaan. Memori ini bersifat individual untuk setiap sesi. Secara teoritis, memori maksimum yang dibutuhkan sama dengan max_connections * work_mem, dalam praktiknya hal ini tidak terjadi karena sebagian besar sesi hampir selalu menunggu. Nilai penasehat ini digunakan oleh pengoptimal: ia mencoba memprediksi ukuran memori yang diperlukan untuk kueri, dan jika nilai ini lebih besar dari work_mem, ia memberitahu pelaksana untuk segera membuat tabel sementara. work_mem bukanlah batasan dalam arti sebenarnya: pengoptimal mungkin meleset, dan permintaan akan memakan lebih banyak memori, mungkin berkali-kali lipat. Nilai ini dapat dikurangi dengan memantau jumlah file sementara yang dibuat:

Maintenance_work_mem = RAM/16..32 atau work_mem * 4 atau 256MB..4GB

Batas memori untuk tugas pemeliharaan, seperti pengumpulan statistik (ANALYZE), pengumpulan sampah (VACUUM), membuat indeks (CREATE INDEX), dan menambahkan kunci asing. Ukuran memori yang dialokasikan untuk operasi ini harus sebanding dengan ukuran fisik indeks terbesar pada disk.

ukuran_cache_efektif = RAM - buffer_bersama

Estimasi ukuran cache sistem file. Meningkatkan parameter akan meningkatkan kecenderungan sistem untuk memilih paket IndexScan. Dan itu bagus.

Cakram

efektif_io_concurrency = 2 (hanya untuk sistem Linux, tidak berlaku untuk Windows)

Perkiraan permintaan simultan ke sistem disk yang dapat dilayaninya pada satu waktu. Untuk satu disk = 1, untuk RAID - 2 atau lebih.

Random_page_cost = 1,5-2.0 untuk RAID, 1.1-1.3 untuk SSD, 0,1 untuk NVMe

Biaya membaca halaman acak (default 4). Semakin kecil waktu pencarian sistem disk, semakin kecil (tetapi > 1,0) parameter ini. Nilai parameter yang terlalu besar meningkatkan kecenderungan PgSQL untuk memilih paket yang memindai seluruh tabel (PgSQL menganggap lebih murah membaca seluruh tabel secara berurutan daripada membaca indeks secara acak). Dan itu buruk.

Seq_page_cost = 0,1 untuk drive NVMe autovacuum = aktif

Menghidupkan autovakum.

Waktu tidur_vakum otomatis = 20 detik

Waktu tidur proses autovacuum. Nilai yang terlalu besar akan mengakibatkan tabel tidak punya waktu untuk vakum dan, akibatnya, ukuran tabel dan indeks akan membengkak. Nilai yang kecil akan mengakibatkan pemanasan yang tidak perlu.

Bgwriter_delay = 20 md

Waktu tidur antar penulisan disk proses latar belakang catatan. Proses ini bertanggung jawab untuk menyinkronkan halaman yang terletak di shared_buffers dengan disk. Nilai yang terlalu besar untuk parameter ini akan menambah beban pada proses checkpoint dan sesi penyajian proses (backend). Nilai yang kecil akan mengakibatkan salah satu inti terisi penuh.

Bgwriter_lru_multiplier = 4,0 bgwriter_lru_maxpages = 400

Pilihan yang mengontrol intensitas perekaman dari proses perekaman latar belakang. Dalam satu siklus, bgwriter menulis tidak lebih dari apa yang ditulis pada siklus terakhir, dikalikan dengan bgwriter_lru_multiplier, tetapi tidak lebih dari bgwriter_lru_maxpages.

Synchronous_commit = mati

Nonaktifkan sinkronisasi disk pada saat komit. Menimbulkan risiko kehilangan beberapa transaksi terakhir (dalam 0,5-1 detik), namun menjamin integritas database tidak ada celah dalam rantai penerapan. Namun hal ini secara signifikan meningkatkan produktivitas.

Segmen_pos pemeriksaan = 32..256< 9.5

Jumlah maksimum segmen WAL antar pos pemeriksaan. Pos pemeriksaan yang terlalu sering menyebabkan beban yang signifikan pada subsistem disk berdasarkan perjanjian. Setiap segmen berukuran 16MB

Target_penyelesaian_pos pemeriksaan = 0,5..0.9

Tingkat “corengan” pos pemeriksaan. Kecepatan perekaman selama pos pemeriksaan disesuaikan sehingga waktu pos pemeriksaan sama dengan waktu yang telah berlalu sejak masa lalu, dikalikan dengan target pos pemeriksaan_penyelesaian_.

Ukuran_wal_min = 512MB .. 4G > =9,5 ukuran_wal_maks = 2 * ukuran_wal_min > =9,5

Ukuran minimum dan maksimum file WAL. Mirip dengan checkpoint_segments

Fsync=aktif

Menonaktifkan opsi ini akan meningkatkan kinerja, namun ada risiko besar kehilangan semua data saat penutupan mendadak nutrisi. Perhatian: jika RAID memiliki cache dan berada dalam mode tulis kembali, periksa keberadaan dan fungsionalitas baterai cache pengontrol RAID! Jika tidak, data yang ditulis ke cache RAID mungkin hilang saat daya dimatikan, dan akibatnya, PgSQL tidak menjamin integritas data.

Commit_delay = 1000

jeda (dalam mikrodetik) sebelum benar-benar melakukan penyimpanan WAL

Commit_siblings = 5

Jumlah minimum transaksi terbuka secara bersamaan di mana penundaan commit_delay akan ditambahkan

Komitmen grup untuk beberapa transaksi. Masuk akal untuk mengaktifkannya jika tingkat transaksi melebihi 1000 TPS. Kalau tidak, itu tidak akan berpengaruh.

Temp_tablespaces = "NAME_OF_TABLESPACE"

Ruang disk untuk tabel/indeks sementara. Menempatkan tabel/indeks sementara disk terpisah dapat meningkatkan produktivitas. Pertama, Anda perlu membuat tablespace menggunakan perintah CREATE TABLESPACE. Jika karakteristik disk berbeda dari disk utama, maka biaya random_page_ yang sesuai harus ditentukan dalam perintah. Cm.

keamanan_baris = mati >= 9,5

Menonaktifkan Kontrol Resolusi Tingkat Rekam

Max_files_per_process = 1000 (default)

Kuantitas maksimum membuka file per proses PostreSQL. Satu file setidaknya berupa indeks atau tabel, tetapi sebuah tabel dapat terdiri dari beberapa file. Jika PostgreSQL mencapai batas ini, PostgreSQL akan mulai membuka/menutup file, yang dapat memengaruhi kinerja. Anda dapat mendiagnosis masalah di Linux menggunakan perintah lsof.

Bersih

max_connections = 500..1000

Jumlah koneksi/sesi simultan
Jika Anda memiliki lebih dari 100 pengguna, lebih baik tentukan secara manual nilai parameter ini berdasarkan jumlah pengguna

Masalah umum di Windows

Kesalahan DBMS: tidak dapat mengirim data ke server: Tidak ada ruang buffer yang tersedia (0x00002747/10055)

Saat menggunakan ruang operasi sistem Windows, jumlah maksimum default port TCP sementara adalah 5000. Jika Anda mencoba membuat sambungan TCP pada port yang lebih besar dari 5000, Anda menerima pesan kesalahan. Dengan kata lain, Anda perlu menambah jumlah port yang tersedia di registri, pilih Parameter (HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\ Tcpip\Parameters) dan tambahkan nilai registri berikut MaxUserPort dengan tipe: DWORD dan nilai: 65534 (Nilai yang dapat diterima: 5000-65534)

Kunci

max_locks_per_transaksi = 256

Jumlah maksimum kunci indeks/tabel dalam satu transaksi

Pengaturan untuk platform 1C

standard_conforming_strings = mati

Izinkan karakter \ digunakan untuk melarikan diri

Escape_string_warning = mati

Jangan peringatkan tentang penggunaan karakter \ untuk melarikan diri

Shared_preload_libraries = "online_analyze, penanam"

beberapa perpustakaan bersama yang akan dimuat saat server dimulai
jika perpustakaan yang ditentukan di dalamnya tidak ditemukan, server tidak akan memulai
mengatur parameter lebih penting untuk Linux, meskipun hal ini juga layak dilakukan untuk Windows

Modul online_analyze menyediakan serangkaian fungsi yang segera memperbarui statistik setelah operasi INSERT, UPDATE, DELETE, atau SELECT INTO pada tabel target.
Modul plantuner menambahkan dukungan untuk instruksi penjadwal untuk mengaktifkan atau menonaktifkan indeks tertentu saat menjalankan kueri.

Online_analyze.enable = aktif

Termasuk analisis statistik tabel sementara yang sering digunakan di 1C

Pengoptimal

default_statistics_target = 1000 -10000

(Statistik pengoptimal yang ditingkatkan)

Aktifkan_nestloop=nonaktif, aktifkan_mergejoin=nonaktif

(Mengubah pengaturan pengoptimal)
● Mengaktifkan atau menonaktifkan penggunaan rencana gabungan loop bersarang oleh penjadwal
● Mengaktifkan atau menonaktifkan penggunaan rencana gabungan gabungan.
Misalnya, kesalahan kehabisan memori

Gabung_collapse_limit=1

(menonaktifkan saat memahami urutan penggabungan tabel!)
● Jika disetel ke 1, klausa GABUNG tidak akan diatur ulang, sehingga urutannya ditentukan secara eksplisit dalam kueri
joins akan menentukan urutan sebenarnya di mana relasi akan digabungkan.
Pengaturan lain yang memengaruhi pengoptimal

Dari_runtuh_batas = 20

● Menetapkan jumlah maksimum elemen dalam daftar FROM, sebelum mencapai jumlah tersebut penjadwal akan membawa konstruksi JOIN eksplisit ke dalamnya (dengan pengecualian FULL JOIN). Nilai yang lebih rendah mengurangi waktu penjadwalan, namun mungkin membuat rencana kueri menjadi kurang efisien.
● seq_page_cost = 0,1 random_page_cost = 0,4 cpu_operator_cost = 0,00025

Online_analyze.table_type = "semua"

(beban lebih banyak)
Jenis tabel yang analisis langsungnya dilakukan: semua, persisten, sementara, tidak ada.

Online_analyze.ambang batas = 50

● Jumlah minimum perubahan baris sebelum analisis langsung dapat dimulai (parameter ini mirip dengan autovacuum_analyze_threshold).

Online_analyze.scale_factor = 0,1

Persentase ukuran tabel saat analisis langsung dimulai (parameter ini mirip dengan autovacuum_analyze_scale_factor).

Online_analyze.min_interval = 10.000

● Interval waktu minimum antara panggilan ANALYZE untuk satu tabel (dalam milidetik).

Online_analyze.local_tracking = nonaktif

● Memungkinkan online_analyze untuk melacak tabel sementara dalam proses layanan. Ketika variabel ini dimatikan, online_analyze menggunakan statistik sistem default untuk tabel sementara.

Online_analyze.verbose = "mati"

● Menonaktifkan pesan panjang dari ekstensi online_analyze

Plantuner.fix_empty_table = "aktif"

● plantuner akan menghilangkan jumlah halaman/tupel dalam tabel yang tidak berisi blok apa pun dalam file

1 Nov 2012 Keuntungan menggunakan didistribusikan secara bebas perangkat lunak jelas. Sayangnya, kelemahannya juga terlihat jelas - tidak ada dukungan resmi, dokumentasi seringkali kontradiktif, tidak lengkap dan tersebar di berbagai sumber. Artikel ini akan membantu Anda memahami proses instalasi PosgreSQL untuk 1C:Enterprise 8, menghindari jebakan yang tidak dijelaskan dalam dokumentasi resmi.

Komponen yang diperlukan untuk instalasi

DBMS PostgreSQL didistribusikan secara gratis dan termasuk dalam paket pengiriman server aplikasi 1C. Server aplikasi 1C:Enterprise 8 hadir dalam dua versi: 32-bit dan 64-bit. Postgre dapat menangani keduanya.

Jadi, kami memiliki kit distribusi:

  • Postgre: postgresql-9_1_2-1_1Cx64.zip, disediakan oleh 1C.
  • Distribusi server aplikasi 1C:Enterprise untuk Windows x64, versi 8.2.16.368.

Tampaknya ini sangat sederhana - cukup luncurkan dan instal. Mudah! Tapi pemasangannya masuk modus standar akan memberikan satu batasan kecil: kita akan memiliki cluster di folder “Program Files”. Tidak semua orang akan menyukainya. Mari kita pertimbangkan dua opsi instalasi, sederhana dan lanjutan.

Artikel ini dibagi menjadi 5 bagian:

1) Pemasangan server 1C.

2) Instal PostgreSQL dalam bentuk standar, cukup untuk menjalankan 1C tanpa pengaturan tambahan.

3) Instal PostgreSQL dan pilih folder penyimpanan cluster.

4) Buat yang baru basis informasi 1C.

5) Menentukan folder untuk menyimpan file database di server DBMS.

Pastikan untuk membaca seluruh artikel sebelum instalasi!

Pemasangan server aplikasi 1C

Kami meluncurkan setup.exe dari folder dengan kit distribusi server 1C.

Jika Anda menginstal server aplikasi bukan sebagai layanan, Anda harus memulainya secara manual setiap kali. Opsi ini jarang diperlukan. Kami menginstalnya sebagai layanan, dan memutuskan pada pengguna mana layanan tersebut akan diluncurkan. Untuk alasan keamanan, lebih baik membuat pengguna terpisah USR1CV82 daripada membiarkan layanan berjalan dengan hak penuh.

Setelah menginstal server aplikasi, sistem akan meminta Anda untuk menginstal driver kunci perlindungan HASP. Kami setuju:

Kami sedang menunggu pesan:

Jika pesannya berbeda, kemungkinan besar ada “ekor” yang tersisa di sistem dari instalasi driver HASP sebelumnya. Hapus semuanya dan coba lagi.

Selesai, server aplikasi 1C:Enterprise 8 sudah berhasil kita install.

Menginstal PostgreSQL dalam bentuk standar, cukup untuk menjalankan 1C tanpa pengaturan tambahan

Jalankan "postgresql-9.1.2-1.1C(x64).msi"

Anda tidak perlu mengubah opsi instalasi, 1C akan berfungsi. Berikutnya.

Postgre, seperti server 1C, dapat membuat pengguna sendiri di mana Anda akan menjalankan layanan. Harap dicatat bahwa jika Anda menentukan akun dengan hak administrator, layanan tidak akan berfungsi dengan benar. Pastikan untuk membuat pengguna baru.

Jendela instalasi berikutnya.

Kami menginisialisasi cluster. Jika server database kami dan server aplikasi 1C berada di komputer yang berbeda, lalu centang kotak “Dukungan koneksi dari IP apa pun”, jika tidak, kami tidak akan menyentuhnya. Pastikan untuk menentukan pengkodean UTF8. Buat pengguna super DBMS. Berikutnya...

Untuk pekerjaan awal kita tidak memerlukan tambahan apa pun, hapus centang pada kotak dan selesaikan instalasi.

Hasil dari upaya kami adalah PostgreSQL yang siap digunakan. Jika kita puas bahwa database akan ditempatkan di Program Files\PostgreSQL\9.1.2-1.1C\data, kita akhiri di situ, buka database dan nikmati prosesnya. Namun, lebih sering daripada tidak, database “berbohong” pada array disk yang dirancang khusus, dan bukan pada disk sistem. Untuk mengkonfigurasi lokasi data, harap baca bagian berikut sebelum instalasi.

Menginstal Postgre dengan memilih lokasi penyimpanan cluster

Kami melanjutkan untuk menginstal Postgre dan melakukan semua langkah hingga kami diminta untuk menginisialisasi cluster:

Hapus centang "Inisialisasi cluster database" dan klik "Berikutnya".

Ya, kami yakin.

Hapus centang “Jalankan Stack Builder saat keluar” dan selesaikan instalasi.

1. Perlu memberikan hak penuh pada folder tempat kita menginstal PostgreSQL, biasanya C:\Program Files\PostgreSQL

2. Luncurkan cmd sebagai administrator. Jika Anda melakukan ini di win7, jalankan sebagai Administrator.

3. Buat folder tempat cluster akan disimpan. Misalnya d:\postgredata.

md d:\postgredata

4. Kami menginisialisasi cluster secara manual, menunjukkan jalur di mana cluster tersebut akan ditempatkan.

“C:\Program Files\PostgreSQL\9.1.2-1.1C\bin\initdb.exe” -D d:\postgredata --locale=Rusia_Rusia --encoding=UTF8 -U postgres

5. Hapus layanan PostgreSQL yang diinstal saat instalasi.

sc hapus pgsql-9.1.2-1.1C-x64

Dimana pgsql-9.1.2-1.1C-x64 adalah nama layanannya. Jika Anda tidak mengetahui nama pastinya, Anda dapat melihat properti layanan "Server Database PostgreSQL..." (Mulai - Panel Kontrol - Alat Administratif - Layanan)

6. Buat layanan baru menunjukkan cluster kami

“C:\Program Files\PostgreSQL\9.1.2-1.1C\bin\pg_ctl” daftar -N pgsql -U postgresql -P kata sandi -D d:/postgredata

7. Sekarang mari kita beralih ke layanan. Mulai – Panel Kontrol – Administrasi – Layanan dan mulai layanan kami.

Membuat database 1C baru di server dengan PostgreSQL

Ada beberapa opsi untuk membuat database. Anda dapat mencoba membuat database melalui pgAdmin3, konsol administrasi server 1C. Namun di sini Anda akan dihadapkan pada banyak pertanyaan yang tidak dapat dipahami dan banyak kesalahan, yang jawabannya akan menghabiskan waktu lama untuk mencarinya. Serahkan saja pada ahlinya. Tujuan kami adalah mendapatkan basis kerja dengan sedikit usaha. Mari kita jelaskan cara termudah untuk mencapai hal ini.

Kami meluncurkan klien 1C.

Klik "Tambahkan...".

Kami memberikan nama untuk database, tunjukkan "Di server 1C:Enterprise", lalu.

Kluster server 1C:Perusahaan– localhost, jika kita membuat database di komputer yang sama tempat server 1C diinstal, atau nama server aplikasi 1C, jika di komputer berbeda.

Nama infobase di cluster- di masa depan, nama ini akan ditunjukkan saat menghubungkan dari komputer lain.

Tipe DBMS– Pilih PostgreSQL.

server basis data- tunjukkan nama server PostgreSQL. Jika kita membuat database di server, kita juga menentukan localhost.

Nama basis data– dengan nama ini database akan dibuat di PostgreSQL.

Pengguna, kata sandi– nama pengguna yang kami tentukan sebagai superuser saat menginstal PostgreSQL. Pastikan untuk mencentang kotak “Buat database jika tidak ada”.

Timbul pertanyaan - di mana database akan disimpan secara fisik? Di folder Base dari cluster yang ditentukan. Bagaimana jika kita tidak menginginkannya terletak di tempat semua basisnya berada? Belum ada yang bisa kami lakukan, kami hanya akan membuat basis dan melanjutkan. Berikutnya...

Menentukan folder penyimpanan database

Jadi, kami telah membuat basis. Dalam kebanyakan kasus, di sinilah instalasi berakhir. Namun, jika terdapat banyak database, dan terdapat beberapa susunan disk untuk grup database yang berbeda, Anda perlu menunjukkan di mana database tersebut seharusnya ditempatkan secara fisik. Untuk melakukan ini, jalankan pgAdmin3 dari Mulai – Program – PostgreSQL. Hubungkan ke server kami.

Saat pertama kali terhubung, Postgre akan meminta kata sandi untuk pengguna postgres (yang kita buat saat instalasi).

Kita membuat TableSpace baru, ini akan menjadi folder dimana database kita akan disimpan.

Menentukan lokasi penyimpanan file database. OKE.

Sekarang kita buka properti database yang dibuat sebelumnya, lokasi yang ingin kita ubah.

Ubah properti Tablespace. Setelah mengklik "OK", file database akan otomatis dipindahkan. Siap! Kami berharap artikel ini bermanfaat bagi Anda. Jika ya, tinggalkan komentar dan bagikan tautan ke halaman ini. Terima kasih!

Segera setelah ukuran database file 1C:Enterprise salah satu klien kami mencapai 32GB (ya, 32GB), akibatnya semuanya secara bertahap mulai melambat, dan kemudian berhenti, klien kami meminta kami untuk menyelesaikan masalah ini. . SSD kelas Perusahaan mempermanis pil tersebut untuk sementara waktu, tetapi setelah beberapa saat semuanya kembali ke titik awal. Nah, jangan pergi ke nenek di sini juga - mari kita lanjutkan ke versi SQL DB.

Karena kami bersemangat pengguna Windows, hanya ada dua opsi DBMS yang tersedia bagi kami - MSSql dan PostgreSQL. Yang pertama sangat bagus, tapi saya tidak puas dengan harganya. Dan yang lebih mengecewakan adalah berita tentang tambahan lisensi 1C untuk bekerja dengan MSSQL. Oleh karena itu PostgreSQL.

Instruksi terperinci dengan video tersedia. Pada artikel ini kita akan membahas poin-poin penting.

Jangan lupa tentang database 1C!

Data awal:

  • sistem operasi Server Windows 2008R2,
  • Intel Inti i7-2600K 3.40GHz,
  • 32GB RAM
  • Intel SSD DC3700 100Gb (hanya untuk database, OS pada SSD terpisah),
  • dari 10 hingga 20 pengguna di database setiap hari,
  • tukar dengan 5 node database terdistribusi di latar belakang.

Menakutkan, bukan? Mari kita mulai.

1. Instal PostgreSQL dan pgAdmin.

Tidak akan ada pengungkapan tentang dari mana PostgreSQL akan diunduh - ini adalah situs favorit kami https://releases.1c.ru, bagian “Distribusi teknologi”. Unduh dan instal. Jangan lupa untuk menginstal MICROSOFT VISUAL C++ 2010 RUNTIME LIBRARIES WITH SERVICE PACK 1, yang terdapat dalam arsip distribusi. Kami sendiri yang menyukainya: kami tidak memasangnya, kami mengalami banyak kesakitan.

Inisialisasi cluster database (tanda centang). Dan di sini kita mengatur parameternya akun untuk PostgreSQL! Penting: Anda harus menjalankan layanan "Masuk Sekunder"(atau pada OS yang dilokalkan: "Login sekunder"). Pengkodean UTF8- ini juga penting!


pgAdmin agak tua dalam build ini. Ayo buka https://www.postgresql.org/ftp/pgadmin3/release/. Pada saat penulisan, versi terbaru adalah 1.22.1. Unduh dan instal. Ayo masuk.

Selama proses instalasi "Administrasi server 1C Enterprise" Jangan berhenti. Ini adalah topik yang sangat berbeda. Ya, dan tidak ada yang rumit di sana.

Kami membuat database SQL di snap-in ini, periksa di pgAdmin - database akan muncul di sana jika semuanya ditentukan dengan benar.

2. Menyetel PostgreSQL 9.4.2.

  • pg_hba.conf
  • postgresql.conf
  • pgpass.conf

yang berlokasi di sini:

C:\Program Files\PostgreSQL\9.4.2-1.1C\data

Jika Anda membuat kesalahan bahkan dalam satu huruf, PostgreSQL tidak akan dimulai setelah memperbarui konfigurasi. Akan sulit untuk mengetahui apa penyebabnya, bahkan dengan melihatnya log Windows. Oleh karena itu, jangan mengubah banyak parameter sekaligus dan buat salinan cadangan.

Untuk mengedit konfigurasi ada alat yang berguna, dapat diakses langsung dari jendela pgAdmin utama. Ini dia:

Apa yang kami ubah di sini:

  • shared_buffer— Jumlah memori yang dialokasikan oleh PgSQL untuk cache halaman bersama. Memori ini dibagikan di antara semua proses PgSQL. Kami membagi RAM yang tersedia dengan 4. Dalam kasus kami adalah 8Gb.
  • Effective_cache_size — Memperkirakan ukuran cache sistem file. Ini dianggap sebagai berikut: RAM - shared_buffer. Dalam kasus kami adalah 32Gb - 8Gb = 24Gb. Namun secara pribadi, saya membiarkan parameter ini lebih rendah lagi, sekitar 20Gb— lagipula, RAM dibutuhkan tidak hanya untuk PostgreSQL.
  • biaya_halaman_acak= 1,5 - 2,0 untuk RAID, 1.1 - 1.3 untuk SSD. Biaya membaca halaman acak (default 4). Semakin kecil waktu pencarian sistem disk, semakin kecil (tetapi > 1,0) parameter ini. Nilai parameter yang terlalu besar meningkatkan kecenderungan PgSQL untuk memilih paket yang memindai seluruh tabel (PgSQL menganggap lebih murah membaca seluruh tabel secara berurutan daripada membaca indeks secara acak). Dan itu buruk.
  • temp_buffers = 256Mb. Jumlah halaman maksimum untuk tabel sementara. Artinya, ini adalah batas atas ukuran tabel sementara di setiap sesi.
  • pekerjaan_mem- Dianggap seperti ini: RAM / 32..64- dalam kasus kami ternyata 1GB. Batas memori untuk memproses satu permintaan. Memori ini bersifat individual untuk setiap sesi. Secara teoritis, memori maksimum yang dibutuhkan sama dengan max_connections * work_mem, dalam praktiknya hal ini tidak terjadi karena sebagian besar sesi hampir selalu menunggu.
  • bgwrite_delay20 md. Waktu tidur antara siklus penulisan disk dari proses penulisan latar belakang. Proses ini bertanggung jawab untuk menyinkronkan halaman yang terletak di shared_buffers dengan disk. Nilai yang terlalu besar untuk parameter ini akan menambah beban pada proses checkpoint dan sesi penyajian proses (backend). Nilai yang kecil akan mengakibatkan salah satu inti terisi penuh.
  • synchronous_commitmati. BERBAHAYA!Nonaktifkan sinkronisasi disk pada saat komit. Menimbulkan risiko kehilangan beberapa transaksi terakhir (dalam 0,5-1 detik), namun menjamin integritas database tidak ada celah dalam rantai penerapan. Namun hal ini secara signifikan meningkatkan produktivitas.

Bukan hanya itu yang berhasil kami pelajari dari Internet dan artikel di https://its.1c.ru. TETAPI! Bahkan pengaturan ini tampaknya cukup untuk mempercepat kerja 1C:Enterprise di PostgreSQL.

Dalam kasus khusus ini, setelah beralih ke PostgreSQL, pengguna mulai mengeluh bahwa 1C mulai melambat lebih dari pada versi file. Tapi setelah penyetelan ini, basisnya "terbang". Sekarang semua orang menikmatinya kerja cepat. Namun ada juga kekurangannya berupa pemblokiran. Kami tidak berencana untuk berhenti di situ; kami akan menggali lebih jauh dan memposting perubahan konfigurasi PostgreSQL yang berguna di sini.

Jika ada masalah dengan database, mungkin ini bisa membantu Anda.

Masih ada pertanyaan?

Apakah ada yang tidak beres? Spesialis perusahaan kami akan membantu Anda menyelesaikan masalah apa pun yang mungkin timbul! Hubungi kami! →

DBMS PostgreSQL sangat populer di kalangan pengguna, dan alasannya adalah kualitasnya yang layak dan sepenuhnya gratis. Popularitas yang tinggi menyebabkan fakta bahwa tugas yang berkaitan dengan akses langsung ke database PostgreSQL dari 1C cukup sering ditemui. Kami akan membicarakan cara mengatur akses ini di bawah.

Persiapan

Pada awalnya, harus dikatakan bahwa semua pengujian dilakukan pada Windows 7 (64-bit) dan Windows 10 (64-bit), dan koneksi dibuat ke server PostgreSQL (64-bit) 9.4.2-1.1C .

Hal pertama yang kita butuhkan adalah driver yang diinstal psqlODBC. Anda dapat menginstalnya menggunakan aplikasi Stack Builder (yang diinstal dengan PostgreSQL):

Atau dengan mengunjungi halaman yang menyajikan banyak versi driver kami:


Penting! Anda perlu menginstal psqlODBC (32 bit).

Dengan driver psqlODBC (64 bit), saya tidak dapat terhubung ke database dengan cara apa pun, di OS apa pun. Kemungkinan besar alasannya adalah tangan saya yang bengkok, tetapi saya menulis apa yang ada di sana.

Bagaimanapun, setelah instalasi versi yang benar Driver kami memiliki beberapa cara untuk menerima data.

Menghubungkan sumber data eksternal

Menghubungkan database PostgreSQL sebagai sumber eksternal datanya sederhana dan jelas. Buat sumber data eksternal baru dan tambahkan tabel baru:


Kemudian kita tentukan string koneksinya seperti ini:

Pengemudi=(Unicode PostgreSQL);Server= tuan rumah;Pelabuhan= pelabuhan;Database= nama_db;Uid= pengguna;Pwd= kata sandi;STMT=utf8


Dan sebagai hasilnya kami mendapatkan daftar tabel:


Saya perhatikan bahwa saat membuat sumber data eksternal, saya tidak dapat menggunakan sumber data khusus, yang dijelaskan di bawah.

Menghubungkan menggunakan ADODB

Menghubungkan ke database PostgreSQL dan menjalankan berbagai kueri menggunakan perpustakaan ADOdb terlihat seperti ini:

&Prosedur OnClient QueryPostgreSQL(Perintah) ADOConnection = COMObject Baru("ADODB.CONNECTION");

Koneksi ADOS.Penyedia = "MSDASQL.1";

ADOSconnection.ConnectionString = "Driver=(PostgreSQL Unicode);Server=localhost;Port=5432;Database=test;Uid=postgres;Pwd=123456;STMT=utf8";

Mencoba ADOSconnection.Open();

Pengembalian Pengecualian;

Percobaan Akhir; ADONRecordSet = COMObject Baru("ADODB.RecordSet");;

ADOCommand = COMObject Baru("ADODB.Command");

Coba ADOCommand.ActiveConnection = ADOConnection;

ADOCommand.CommandText = "PILIH * DARI ""tabel"";";

ADONRecordSet = ADOCommand.Execute();

Pengembalian Pengecualian;

Percobaan Akhir; Akhir Prosedur

&Pada Klien

ADOCommand = COMObject Baru("ADODB.Command");

Prosedur QueryPostgreSQL (Perintah)

ADOConnection= COMObject baru("ADODB.CONNECTION" ) ;

koneksi ADOS. Penyedia= "MSDASQL.1" ;

ADOCommand.CommandText = "PILIH * DARI ""tabel"";";

ADONRecordSet = ADOCommand.Execute();

Pengembalian Pengecualian;

koneksi ADOS. KoneksiString=

Dalam hal ini, dimungkinkan untuk menggunakan sumber data khusus, yang harus dibuat terlebih dahulu. Hal ini dapat dilakukan dengan menggunakan aplikasi ODBC Data Sources (32-bit), yang terletak di Control Panel (dan di Windows 10 di folder Alat Administratif di Control Panel). Penting untuk menggunakan versi 32-bit, karena setiap versi hanya melihat driver “sendiri”. Jika, karena alasan tertentu, aplikasi ini tidak ada di panel kontrol, Anda dapat meluncurkannya secara langsung; aplikasi ini terletak di \Windows\SysWOW64\odbcad32.exe.

Krisis adalah hal yang tidak menyenangkan... dan banyak orang, yang mencoba menghemat uang, menginstal PostgreSQL di Windows, bukan MS SQL.

Meskipun jika perusahaan Anda memiliki omzet yang kecil, lebih baik menginstal MS SQLServer 2014 Ekspres, karena Berdasarkan pengalaman, PostgreSQL berfungsi dengan baik di Linux; di Windows, dengan pengaturan default, PostgreSQL lebih lambat dibandingkan MS SQL Server 2014 Express.

Instal PostgreSQL 9.2.4-1

Unduh paket resmi dari situs web 1C (users.v8.1c.ru) dan mulai instalasi

Tandai objek untuk instalasi jika tidak ditandai

Instal "sebagai layanan". Diperlukan pengguna khusus agar layanan ini dapat berfungsi. Tentukan akun Anda, domain (jika tersedia) dan kata sandi.

Jika pengguna postgres tidak masuk ke sistem, penginstal akan meminta Anda untuk membuat pengguna? - klik ya

Mari lanjutkan ke langkah berikutnya dan tentukan Inisialisasi cluster database, port 5432 dan Encoding UTF8

Jika cluster server 1C dan PostgreSQL berada di mesin yang berbeda, centang kotak “Dukungan koneksi dari IP apa pun, bukan hanya localhost.”

Jika proses instalasi selesai tanpa masalah, maka Anda beruntung.

Lebih sering ada masalah, solusinya sederhana dan elegan (Anda bisa meninggalkan rebana):

1. Buat/Edit akun postgres, masukkan ke dalam grup Administrator

2. Keluar dan masuk di bawah akun postgres

3. Jalankan instalasi PostgreSQL

Setelah instalasi, melalui menu "Start" - "All Programs", luncurkan utilitas administrasi "pgAdmin III".

Hubungkan ke server. Di sana kami memasukkan kata sandi untuk pengguna “postgres”. Jika kita berhasil menyambung, mari kita coba berkreasi basis baru menggunakan 1C itu sendiri.

Mari kita luncurkan bagian klien 1C. Klik tombol "Tambah" dan centang kotak "1C Enterprise Server". Selanjutnya isi yang berikut ini: database server (nama IP atau DNS server tempat PostgreSQL diinstal) - jika sama dengan cluster 1C, masukkan 127.0.0.1. Nama basis data: [nama_apa saja]. Pengguna: "postgres" Kata sandi: [kata sandi_Anda_postgres]. Berikutnya.